filereader属于字节流_免流流控如何添加节点

filereader属于字节流_免流流控如何添加节点上一篇字符流(InputStreamReader、OutputStreamWriter) – 鹿先森JIAN – 博客园 (cnblogs.com)对纯文本文件txt的读写复制操作,可针对不同编码进行转换设置。如果是默认的读写的文本文件的编码要与当前环境的编码兼容,可采用以下更简便的方法去写: Fi

上一篇字符流(InputStreamReader、OutputStreamWriter) – 鹿先森JIAN – 博客园 (cnblogs.com)对纯文本文件txt的读写复制操作,可针对不同编码进行转换设置。如果是默认的读写的文本文件的编码要与当前环境的编码兼容,可采用以下更简便的方法去写:

FileReader字符流,输入流,节点流。用来以字符为单位读取文件内容

FileWrtier字符流,输出流,节点流。用来以字符为单位把数据保存到文件中

注意:
以 Reader 结尾的这些字符流只能读写纯文本文件txt
FileReader、FileWriter 读写的文本文件的编码要与当前环境的编码兼容

filereader属于字节流_免流流控如何添加节点

 

————————————————–

FileReader

  • FileReader(File file) 在给定从中读取数据的 File 的情况下创建一个新 FileReader
  • FileReader(String fileName) 在给定从中读取数据的文件名的情况下创建一个新 FileReader
//使用FileReader读取文本文件的内容
public class Test01 {
    public static void main(String[] args) throws IOException {
        //1)建立流通道
        //out.txt文件是GBK编码,以FileReader读取,汉字会出现乱码
//        FileReader fr = new FileReader("D:\\yexiao1793\\file\\out.txt");
        //Test02.txt文件中既有中文又有英文, 该文件是以UTF-8编码的
        FileReader fr = new FileReader("D:\\yexiao1793\\file\\Test02.txt");

        //2)逐个字符读取. read()一次读取一个字符,返回字符的码值,如果读取文件末尾返回-1
        int cc = fr.read();
        while (cc != -1 ){
            System.out.print( (char)cc );
            cc = fr.read();
        }

        //3)关闭
        fr.close();
    }
}

FileWriter

  • FileWriter(File file) 根据给定的 File 对象构造一个 FileWriter 对象
  • FileWriter(String fileName) 根据给定的文件名构造一个 FileWriter 对象
// FileWriter 把字符保存到文件中
public class Test02 {
    public static void main(String[] args) throws IOException {
        //1)以覆盖的方式建立流通道,如果文件已存在,会覆盖文件原来的内容.如果文件不存在,会创建的新文件且编码格式就是UTF-8编码
        FileWriter fw = new FileWriter("D:\\yexiao1793\\file\\out3.txt");
        // out.txt文件已存在, 并且是GBK编码, 以覆盖的方式打开,会把文件编码更改为UTF-8
//        FileWriter fw = new FileWriter("D:\\yexiao1793\\file\\out.txt");
        // out.txt文件已存在, 并且是GBK编码, 以追加的方式打开,写入文件中的汉字会变为乱码
//        FileWriter fw = new FileWriter("D:\\yexiao1793\\file\\out.txt", true );

        fw.write('汉');
        fw.write('字');
        fw.write( 98 );
        fw.write( 30098 );
        fw.write('\r');
        fw.write('\n');
        fw.write("hello动力节点".toCharArray());
        fw.write("\r\n还可以直接写一个字符串");

        fw.close();
    }
}
filereader属于字节流_免流流控如何添加节点

——————————————–

//文本文件的复制
public class Test03 {
    public static void main(String[] args) {
        String srcFile = "D:\\yexiao1793\\code\\day0901\\src\\filereaderwriter\\Test03.java"; // 源文件
        String destFile = "d:/yexiao1793/file/test03.java"; // 新位置

        copyTextFile(srcFile, destFile);
    }

    //文本文件复制,使用字符数组作为容器,自动关闭流
    private static void copyTextFile(String srcFile, String destFile) {
        try (
                FileReader reader = new FileReader(srcFile);
                FileWriter writer = new FileWriter(destFile);
        ) {
            char [] contents = new char[1024*4];
            int len = reader.read(contents); // 以字符数组方式读写 while (len != -1 ){
                writer.write(contents, 0, len);
                len = reader.read(contents);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //文本文件复制,逐个字符复制,手动关闭流
    private static void copyTextFile1(String srcFile, String destFile) {
        FileReader reader = null;
        FileWriter writer = null;
        try {
            reader = new FileReader(srcFile);
            writer = new FileWriter(destFile);

            int cc = reader.read();
            while( cc != -1){
                writer.write(cc);
                cc = reader.read();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null ) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (writer!=null) {
                try {
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

今天的文章filereader属于字节流_免流流控如何添加节点分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/49201.html

(0)
编程小号编程小号
上一篇 2023-09-03 12:17
下一篇 2023-09-03

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注