我在 MacOS X 10.10.5 下使用带有 Eclipse Kepler 的 Java 编译器 v6.0 来支持 Java PrintWriter 命令的 autoFlush 选项时遇到问题。如果我提供一个 boolean 值来启用“autoFlush”,根据 Java 6.0 的 Java 文档,Eclipse 会声称它是非法参数。然而,当我在 Eclipse 下验证编译器设置时,它确实显示编译器兼容级别为 Java 1.6.0。那么,为什么 Eclipse 或编译器无法识别“autoFlush”的 boolean 参数呢?
这是代码:
DrawingPanel.logFile = new PrintWriter("LogFile.txt", true); <-- Eclipse does not like the "true" argument.
可能出了什么问题?
最佳答案
PrintWriter
有 8 个构造函数:
PrintWriter(File file)
PrintWriter(File file, String csn)
PrintWriter(OutputStream out)
PrintWriter(OutputStream out, boolean autoFlush)
PrintWriter(String fileName)
PrintWriter(String fileName, String csn)
PrintWriter(Writer out)
PrintWriter(Writer out, boolean autoFlush)
只有 OutputStream
和 Writer
版本有 autoFlush
第二个参数。编译器正确地提示您的第二个参数不是 String
。
您应该使用:
DrawingPanel.logFile = new PrintWriter(new FileWriter("LogFile.txt"), true)
关于java - 如何在 MacOS X 10.10.5 下使用带有 Java 6 的 PrintWriter 来禁用缓冲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33863219/