我的控制台中的System.out.println()
在以下代码中没有任何结果:
LinkedList<Element> ls = count(list);
File outFile = new File(args[1]);
FileWriter fw = new FileWriter(outFile);
BufferedWriter bw = new BufferedWriter(fw);
for(int i = 0; i < ls.size(); i++) {
bw.write((int) ls.get(i).data);
System.out.println("Written out " + ls.get(i).data);
}
bw.flush();
bw.close();
Element
对象只是一个包含int key;
和Object data;
的类
BufferedWriter
正在按原样写出文件,但我在Eclipse中的控制台没有得到System.out.println();
次调用。当我在调试模式下使用断点bw.write()
运行它时,我一直按F8(热键继续),直到BufferedWriter
完成,但没有任何东西进入控制台。有什么想法吗?
答案 0 :(得分:1)
首先,请不要使用系统控制台进行日志记录。其次,添加对flush()
的调用。最后,确保添加之前使用的相同演员表(或者只是将其保存到变量中)。
int payload = (int) ls.get(i).data;
bw.write(payload);
System.out.println("Written out " + payload);
// Or,
// System.out.println("Written out " + ((int) ls.get(i).data));
System.out.flush();
答案 1 :(得分:0)
尝试输出for循环的变量,例如ls.size(),如果没有输出那么你的代码根本就没有被调用但是如果是,那么你应该能够找出什么是错。
因为我们不知道ls中有什么,我们不知道它是否可能是空的
这样可以帮助我们尝试
System.out.println("List: " + ls);
System.out.println("List size: " + ls.size());
就在for循环之前,告诉我们输出。