Eclipse控制台中没有输出,但其余方法都有效

时间:2014-05-21 13:43:24

标签: java system.out

我的控制台中的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完成,但没有任何东西进入控制台。有什么想法吗?

2 个答案:

答案 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循环之前,告诉我们输出。