yuan生的小小白
2022-01-20 14:42
采纳率: 100%
浏览 30

为什么用集合存储FileReader类中read()方法返回的数值输出后内容不一致?

刚刚学到IO流的知识,了解到FileReader类中的read()方法可以读取文件,正常代码是用int类型去接受read()方法返回的数值,然后通过强制类型转换输出,那既然这样我直接使用字符集合来保存,并且输出为什么不行呢,我尝试了以后发现用这种方法输出的字符跟文件不一样,想了半天也不明白哪里出错了
正常方法读取外部文件并输出:

Demo.txt文件中的内容为:我是一个文本文档,用于测试数据的

import java.io.*;
public class Demo{
      FileReader fileReader = new FileReader("D:\\myfwy\\review\\src\\pers\\iostream\\demo.txt") 
      int data = fileReader.read();
      while(data != -1){
           System.out.print((char) data);
           data = fileReader.read();
  }
}
运行结果为:我是一个文本文档,用于测试数据的
我想的方法:
import java.io.*;
public class Demo{
      FileReader fileReader = new FlieReader("D:\\myfwy\\review\\src\\pers\\iostream\\demo.txt");
      ArrayList<Character> readList = new ArrayList<Character> ();
      readList.add((char)fileReader.read());
      for(i = 0;fileReader.read() != -1;i++){
            System.out.print(readList.get(i));
            readList.add((char)fileReader.read());
  }
}
运行结果为:我一文文,于试据
为什么这样输出的内容跟文件原本的内容不一致,希望得到解决
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题