Java 在Eclipse控制台中并没有输出,尽管方法的其余部分可以工作

Java 在Eclipse控制台中并没有输出,尽管方法的其余部分可以工作,java,system.out,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 < l

我在控制台中没有从以下代码中的
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();
LinkedList ls=计数(列表);
文件输出文件=新文件(args[1]);
FileWriter fw=新的FileWriter(输出文件);
BufferedWriter bw=新的BufferedWriter(fw);
对于(int i=0;i
元素
对象只是一个带有
int键的类
对象数据

BufferedWriter
正在按其应该的方式写入文件,但是我在Eclipse中的控制台没有获得
System.out.println()呼叫。当我在调试模式下运行它,断点位于
bw.write()
时,我一直按F8(热键继续),直到
BufferedWriter
完成,但没有任何东西进入控制台。想知道为什么吗?

首先,请不要使用系统控制台进行日志记录。其次,添加对
flush()
的调用。最后,确保添加与之前使用的类型相同的类型转换(或者只将其保存到变量中)


尝试输出for循环的变量,如ls.size(),如果没有输出任何内容,则根本不会调用代码,但如果是,则应该能够找出错误所在

因为我们不知道ls中是什么,所以我们不知道它是否可能是空的

所以帮我们试着把

System.out.println("List: " + ls);
System.out.println("List size: " + ls.size());

就在for循环之前,告诉我们输出。

什么是
ls
?它没有在代码中声明。在“窗口>首选项>运行/调试>控制台”中,是否选中了“当程序写入标准输出时显示”复选框?ls正好在(bw.write)上方的行中工作,但不知何故,System.out.println无法在几纳秒后到达同一对象(bw.write未修改任何内容)是,Eclipse设置为显示程序何时写入标准输出(在其他行中工作,在同一程序的早期执行,仍然使用system.out.println函数),看起来您的“ls”已经等于
0
没有修复它,我仍然没有在控制台中获取任何内容。@Zuenontu。确保你投的和你写的一样,这就成功了。我按照您的要求将typecast添加回int,现在它可以工作了。我将尝试改用Logger,尽管它在控制台中写入,但由于默认的appender,所以工具Logger在控制台中写入,但您可以在任何需要的地方写入它。以Log4J库为例。它易于使用和理解。那么是SOP刷新完成了这个技巧还是在bw.write方法之外进行了转换呢?只是想知道它重新开始工作的原因?我添加了你告诉我的内容,但我什么也没有得到(甚至添加了.flush)。不过,这里有一件大事:如果我使用System.err.println而不是.out,那么我会得到所有应该打印的行。这就是我编辑的全部内容(从.out到.err)。很奇怪,但它解决了为什么代码正在运行,但只是系统出了问题。输出显示?我以前从未见过,至少你的问题已经解决了:每件事都是第一次。但是,是的,我的代码正在运行,因为如果我进入并删除了写入的文件(从bw.write()方法),它将在我运行程序后再次生成,我使用Eclipse中的调试工具查看代码是否在运行。
System.out.println("List: " + ls);
System.out.println("List size: " + ls.size());