字符流读数据之一次读取一个字符

  1. Reader类中的方法:<br /> int read() ;读一个字符,返回该字符对应的ASCIT码值,读不到返回-1.<br /> FileReader类的构造方法:<br /> public FileReader(String pathname);根据传入的字符串形式的路径,获取字符输入流对象

案例1

  1. public class ReaderDemo {
  2. public static void main(String[] args) throws IOException {
  3. //需求:通过字符流读取数据,一次读取一个字符
  4. //1.创建字符输入流对象
  5. Reader reader = new FileReader("lib/1.txt");
  6. //2.读取数据
  7. /* int ch1 = reader.read();
  8. System.out.println(ch1);//97
  9. int ch2 = reader.read();
  10. System.out.println(ch2);//98
  11. int ch3 = reader.read();
  12. System.out.println(ch3);//99
  13. int ch4 = reader.read();
  14. System.out.println(ch4);//-1*/
  15. /*优化上述的读法,用循环改进
  16. 因为不知道循环次数,所以用while循环
  17. */
  18. //定义变量,用接收读取到的字符
  19. int ch1;
  20. while ((ch1 = reader.read()) != -1){
  21. //ch1 = reader.read();
  22. System.out.println(ch1);
  23. }
  24. //3.释放资源
  25. reader.close();
  26. }
  27. }

字符流读取数据之一次读取一个字符数组

_ _Reader类中的方法:
int read(char3 chs);一次读一个字符数组,将读取到的内容存入到数组中,并返回读取到的有效字符数,读不到返回-1.
FileReader类的构造方法:
public FileReader(String pathname);根据传入的字符串形式的路径,获取字符输入流对象

案例2

  1. public class ReaderDemo1 {
  2. public static void main(String[] args) throws IOException {
  3. //通过字符流读取数据,一次读取一个字符数组
  4. //1.创建字符输入流对象
  5. Reader reader = new FileReader("lib/1.txt");
  6. //2.读取数据
  7. /* char chs[] = new char[3];
  8. int len1 = reader.read(chs);
  9. System.out.println(chs);//a,b,c
  10. System.out.println(len1);//3
  11. int len2 = reader.read(chs);
  12. System.out.println(chs);//d,e,f
  13. System.out.println(len2);//3
  14. int len3 = reader.read(chs);
  15. System.out.println(chs);//g,e,f
  16. System.out.println(len3);//1
  17. int len4 = reader.read(chs);
  18. System.out.println(chs);//g,e,f
  19. System.out.println(len4);//-1*/
  20. //优化上述代码,while循环
  21. //定义字符数组
  22. char chs [] = new char[3];
  23. //定义一个变量,记录读取到的有效字符数
  24. int len;
  25. while ((len=reader.read(chs)) != -1){
  26. //将读取到的内容,转换成字符串
  27. String str = new String(chs,0,len);
  28. System.out.println(str);
  29. }
  30. //3.释放资源
  31. reader.close();
  32. }
  33. }