首先看代码:
package filereader;
import java.io.FileReader;
import java.io.IOException;
import static java.lang.System.out;
class FileReaderDemo2{
public static void main(String[] args)throws IOException{
FileReader fr = new FileReader("c:\\test.txt");//文件内容a
char[] buf = new char[3];//定义数组长度为3
int num=fr.read(buf);
out.println("num="+num+"..."+new String(buf));
num=fr.read(buf);
out.println("num="+num+"..."+new String(buf));
num=fr.read(buf);
out.println("num="+num+"..."+new String(buf));
out.println("over");
}
}
但输出结果却是:(我把源文件和test.txt均放在了c:\下)
竟然输出了3个a??我很郁闷,我在反复检查c:\test.txt内容->确定为一个a
我在考虑是不是因为我的操作系统缘故(windows 7 64bit 旗舰版)
于是我把java源文件和test.txt拷到XP系统下测试:
一个a正常.
我在用U盘把JDK和源文件拷到同学机器上运行,3个a…..
这是为什么?拜托了.
------解决方案--------------------
抱歉,刚才没看清问的。
首先这肯定不是系统计算的问题。
楼主可以尝试在32位和64位或者xp下使用exclipse编译。看结果。
我这边32位的win结果是
num=1...a(后面还有分隔符)
num=-1...a(后面还有分隔符)
我觉得有可能是显示的问题。
楼主可以尝试一下吧这结果打印到一份文件里面看看。