日期:2014-05-20  浏览次数:20793 次

初学者求解释
因为要生成一份数据测试个程序,就写了下面的代码
import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class aa {
public static void main(String[] args) {
try {
PrintWriter pt=new PrintWriter("C:\\AA.txt");
for(int i=0;i<10000;++i)
pt.println(i+"\t"+i+"\t"+i+"\t"+i+"\t"+i+"\n");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}


程序运行没有异常,可输出结果却只有9000多,永远没有10000,当i<100是,什么也没有输出
这是为什么呢


------解决方案--------------------
eclipse 设置
window-Preferences-Run/Debug-Console里边,去掉对Limit console output的选择,或者设置Console buffer size的值
------解决方案--------------------
刚看到,以为你的意思是要在控制台输出呢。刚才我说的不是解决这个问题的。

for(int i=0;i<10000;++i)
pt.println(i+"\t"+i+"\t"+i+"\t"+i+"\t"+i+"\n");
下面加一句
pt.close();//这样才能写进文件中。
------解决方案--------------------
没有清空缓冲区吧。
楼主试着,在程序的最后,将输出流关闭,或者调用pt.close();方法。
清空缓冲区,也就是将缓冲区里面的数据推到硬盘上面,可以调用pt.flush();方法实现,
如果没有,直接close完事。
------解决方案--------------------
因为数据是在缓冲区中的,缓冲区没有满,不执行文件写操作。调用close方法,就把缓冲区的内容写到文件中了。
不然,flush方法也可以,但最后都要close掉。所以直接close就可以。
------解决方案--------------------
3楼正解