gpt4 book ai didi

java - 在java中使用BufferedOutputStream打印整数

转载 作者:行者123 更新时间:2023-11-30 07:31:58 25 4
gpt4 key购买 nike

需要在控制台打印一百万个值,System.out.println()BufferedOutputStream 相比相对较慢(根据我读到的内容)。

所以我尝试这样打印:

OutputStream out = new BufferedOutputStream (System.out);
out.write(sum);

sum类型为int ,以及out.write()以字节为单位打印。我尝试将字节转换为十进制,这给了我一个编译错误:

byte cannot be dereferenced

所以,我的问题是:使用 BufferedOutputStream 以十进制格式打印整数值.

因为,我在打印 int 时没有找到任何解决方案使用 BufferedOutputStream 的值,我正在拼命寻找答案。

最佳答案

您遇到的问题是在控制台上显示文本比生成文本慢得多。您可以使用缓冲区,如果重定向到文件而不是屏幕,这会更快,但是如果您实际上在屏幕上显示,它不会更快。缓冲可以做的是减少滚动量,因为它以文本 block 的形式写入屏幕,而不是一次一行。

注意:BufferedOutputStream 写入二进制而不是文本。它会更快,但人类不可读。如果您想要人类可读,我建议使用 PrintWriter,它旨在写入文本。

PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(System.out, "UTF-8")));

// call many times
out.print(num);

// to flush the buffer so all the data can be read.
out.flush();

您可以使用 StringBuilder,但是这是;

  • 速度较慢,因为在创建整个字符串之前不会显示文本。如前所述,文本的显示是您的主要问题。
  • 使用与输出一样多的内存,并且扩展性不佳。

关于java - 在java中使用BufferedOutputStream打印整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35983441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com