java字符流

字符流

  • java.io.Reader:字符输入流的父类,是一个抽象类

  • 共有的方法:

    • int read() 读取单个字符并返回
    • int read(char[] cbuf) 一次读取多个字符,将字符读入数组
    • void close() 关闭流并释放资源

java.io.FileReader extends InputStreamReader extends Reader

  • FileReader:文件字符输入流
  • 构造方法
    • FileReader(String fileName)
    • FileReader(File file)

java.io.FileWriterextends OutputStreamReader extends Writer

  1. void write(int c) 写入单个字符
  2. void write(char[] cbuf) 写入字符数组
  3. abstract void write(char[] cbuf, int off, in len) 写入字符数组中的一部分,len表示个数
  4. void write(String str) 写入字符串
  5. void write(String str, int off, int len) 写入字符串中某一部分字符个数
  6. void flush() 刷新该流的缓冲
  7. void close() 关闭流,但先要刷新
  • FileWriter:文件字符输出流

  • 构造方法->会根据文件路径自己创建文件

    • FileWriter(String fileName)
    • FileWriter(File file)
  • 字符输出流的使步骤:

    1. 创建FileWriter对象,构造方法中绑定要写入数据的地址
    2. 使用FileWriter中的方法write,把数据写入到内存缓冲区中(字符转换为字节的过程)
    3. 使用FileWriter中的方法flush,把内存缓冲区中的数据,刷新到文件中
    4. 释放资源(会把内存缓冲区中的数据刷新到文件中)
 		FileReader fr = new FileReader("./a.txt");
        char[] b = new char[1024];
        int len = 0;
        while ((len = fr.read(b))!=-1){
            System.out.println(new String(b,0,len));
        }
        fr.close();
        FileWriter fw = new FileWriter("./a.txt",true);
        char[] chars = {'1','2','3','4','5','6'};
        fw.write(chars);
		//把内存缓冲区的数据刷新到文件中
		fw.flush();
        fw.close();
posted @ 2022-10-06 22:55  彼时听风  阅读(94)  评论(0)    收藏  举报