我制作了一个应用程序,可以将文件的字节打印到系统控制台。 (cmd.exe,就我而言)它运行得很好,但我希望它运行得更快(对于大文件),所以我优化了它。根据我自己的测试,在 250,000 字节的文件上,从文件读取字节并将其存储在字符数组中的部分需要 15 到 32 毫秒,但将这些字符打印到命令窗口需要超过 9000 毫秒!(9 秒,几乎慢了300倍!)我试过http://www.rgagnon.com/javadetails/java-0603.html但我没有看到明显的改进。
有没有办法更快地打印到控制台,或者我必须采用 JFrame/JTextArea 策略吗?
最佳答案
您的问题是您正在将 250kb 文件打印到控制台。没有人可以阅读它或理解它(以 500 行/秒的速度阅读十六进制?),因此您正在执行完全不必要的步骤。
如果您要将文件转换为十六进制字符表示形式,请将输出粘贴到文件中,并让用户使用真实的文本查看器查看它,而不是将其转储到控制台中。
正如您所指出的,使用 Swing/awt 组件将允许您使用自己的 GUI 元素来实现此目的。
关于java - 系统输出打印速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15330067/