image.png
理解:输入流:就是从硬盘输入到内存(Reader方法:可以理解为将硬盘的东西读到内存中); 输出流:从内存输出到硬盘(write方法:可以理解为写在硬盘内)
Reader(输入流)和Writer(输出流):是抽象类, 要被继承实现
image.png

文件字符输入流:

image.png
read() 字符流读取方法返回的是一个 编号(对应的ASCII码编号), 想要内容,直接强转(用char)
image.png

  1. package com.itheima.d6_char_stream;
  2. import java.io.FileNotFoundException;
  3. import java.io.FileReader;
  4. import java.io.Reader;
  5. public class FileReaderDemo01 {
  6. public static void main(String[] args) throws Exception {
  7. // 目标:每次读取一个字符
  8. // 1. 创建一个字符输入流(读)管道与源文件接通
  9. Reader fr = new FileReader("file-io-app\\src\\data.txt");
  10. // // 2. 读取一个字符返回,没有可读的字符了返回 -1
  11. // // public int read(): 读取一个字符的编号返回!读取完毕返回-1
  12. // int code = fr.read(); // 返回一个int类型的编号
  13. // // 爱 后面是英文字母也能拿 只看字符 不看字节
  14. // System.out.println((char) code); // 编号97,转换成字符类型会查ASCII码表,转换成对应的字符
  15. //
  16. // int code1 = fr.read(); // 读取下一个字符
  17. // System.out.println((char) code);
  18. // 3. 使用循环读取字符
  19. int code;
  20. while ((code = fr.read()) != -1){
  21. // 读到了文件 用循环将文件的每个字符,逐个打印出来
  22. System.out.print((char) code);
  23. }
  24. }
  25. }