JAVA的filereader的问题
请问为什么charc、c2、c3都是=(char)reader.read()为什么却分别被赋值为a、b、c呢?难道read这个方法还能自动检测前面用过了一次read,a已...
请问为什么char c、c2、c3都是= (char) reader.read()为什么却分别被赋值为a、b、c呢?
难道read这个方法还能自动检测前面用过了一次read,a已经被读过了,下次就不读a,读下一个b这样? 展开
难道read这个方法还能自动检测前面用过了一次read,a已经被读过了,下次就不读a,读下一个b这样? 展开
2个回答
展开全部
使用 read(); 这个方法的话,如果你没有给它重新赋值,就会实现这个功能。你试试把你的代码换成这样:
pachage cn.xxx.oop.testException;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class testException {
public static void main(String[] args) {
try {
FileReader reader = new FileReader("d:/abc.txt");
char c = (char) reader.read();
char c2 = (char) reader.read();
// reader=new FileReader("d:/abc.txt"); 这行令 reader 重新指向对象;
char c3 = (char) reader.read();
// reader.close();
System.out.println(c + "" + c2 + c3);
} catch (FileNotFoundException E) {
E.printStackTrace();
} catch(IOException E) {
E.printStackTrace();
}
}
}
输出结果为:aba
另外一般如果 FileReader 不需要了,我们添加一行:reader.close(); 用来释放它占的资源。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询