问题标签 [bufferedoutputstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
471 浏览

java - 在 FileOutputStream 与 BufferedOutputStream 上测试 write(byte[])

write(byte[])使用fromFileOutputStream和的方法时是否存在实际性能差异BufferedOutputStream

我在 HDD 上测试了写入 500 MB 的文件,结果是 13 秒和 12 秒:

和,

我在BufferedOutputStream效率方面缺少什么?

0 投票
1 回答
465 浏览

java - BufferedOutputStream 制作空白文件

我有以下代码用于将文件从客户端上传到服务器 tcp,但是当我尝试手动打开时,文件为空,为什么重量好..我在 stackOverflow 上看了很多帖子,但没有任何改变 Thx(对不起,我的英语不好)
服务器:

公共类 ThreadServer 扩展 Thread{

}

客户:

}

0 投票
2 回答
8468 浏览

java - RandomAccessFile.seek() 是如何工作的?

根据API,这些是事实:

  • seek(long bytePosition)方法简单地说,将指针移动到bytePosition参数指定的位置。
  • bytePosition大于文件长度时,除非在(新)端写入一个字节,否则文件长度不会改变。
  • 如果跳过的长度中存在数据,则此类数据保持不变。

但是,我很好奇的情况是:当有一个没有数据的文件(0字节)并且我执行以下代码时:

0所有 100,000 字节几乎立即被填满。我可以在 10 毫秒内时钟超过 200GB。

但是,当我尝试使用其他方法(例如BufferedOutputStream相同的过程)写入 100000 个字节时,几乎需要无限长的时间。

造成这种时间差异的原因是什么?有没有更有效的方法来创建一个n字节文件并用 s 填充它0

编辑: 如果数据没有实际写入,文件是如何填充数据的?示例此代码:

这是输出:

输出

另外,如果文件足够大,由于空间不足,我无法再写入磁盘。

0 投票
1 回答
292 浏览

java - apache POI XWPF 文档中的图像有颜色失真

我正在尝试设计一个报告模板,其中包含许多(数百个)由超链接引用的图像。我希望文档小于 25Mb(出于电子邮件和其他原因),因此我尝试使用以下代码压缩图像:

图像写入文档,但颜色失真。就我而言,它们都是红色/橙色。关于导致此/做什么的任何想法?

0 投票
1 回答
213 浏览

java - 你能阻止 BufferedOutputStream (java) 传输吗?

我正在尝试使用将字符串写入 OutputStream

我使用此方法成功传输了一个不同的字符串,然后(响应通过流接收到的消息)尝试发送上面的消息。

在这个调用中,写操作在“B”被写入后立即刷新缓冲区,导致两个数据包通过流发送。第一个是单个字符;第二个包含字符串的其余部分。在最近更新服务器之前,这在 Linux 上正常工作。

有什么方法可以强制 OutputStream 或 BufferedOutputStream 将 write() 视为原子操作,或者在 flush() 之前不传输?

我也试过

结果相同。

0 投票
1 回答
1627 浏览

java - GZIPOutputStream 与 BufferedOutputStream 的性能

我的应用程序正在尽可能快地将大量视频和 i2c 传感器数据记录到磁盘文件中。目前,我正在将所有内容都转换为字节,并且正在使用 BufferedOutputStream 进行编写。@Siguza 非常友好地建议研究 GZIPOutputStream 来完成任务。我想知道你是否对性能问题有任何想法赞成和反对......我认为处理器遥遥领先,磁盘写入是瓶颈 - 所以我希望在写入之前通过 GZIPOutputStream 进行动态压缩可能是一个很好的策略。对此的任何想法都非常受欢迎。

补充:回应评论...

事实证明,压缩并不是那么昂贵的处理器......正如欧文正确指出的那样,我提出原始问题的方式并不好。关于压缩性能的问题不在 BufferedOutputStream 和 GZIPOutputStream 之间......压缩和解压缩的流都需要包装到 BufferedOutputStream 中,但是如果原始 FileOutputStream 在它之前先包装在 GZIPOutputStream 中,会增加多少成本包装在 BufferedOutputStream 中。这是答案。我正在使用代码

我的 2012 macpro 笔记本电脑写入了 100 万个整数

zipped=true in 38ms - filesize 4MB
zipped=false in 21ms - fileSize 4KB

而且,是的,我喜欢压缩:-)

读取性能几乎相同 83 vs 86ms

都好 ...

0 投票
1 回答
63 浏览

java - 服务器和客户端发送文件 Java

我正在编写一个具有客户端和服务器的程序,客户端将在其中将 img 文件发送到服务器。下面的代码是针对服务器的,它会obIn.read在最后一次运行时卡在 while 循环上,因此它永远无法返回 -1 并中断循环。它确实打破了我的客户的循环。所以我试图在客户端循环之后刷新它,但它似乎没有任何好处。我不想关闭 obOut,因为这将关闭我想要保持打开的套接字。服务器端是它从 obIn(作为实例变量的输入流)接收数据并将其写入我创建的文件的地方。


此图像是服务器在顶部,客户端在底部的输出。那是我发现服务器卡住的地方。

在此处输入图像描述

是我找到此方法并尝试使其适用于我的设置的地方。这是我第一次使用流。

0 投票
2 回答
82 浏览

java - 如何使用 BufferedOutputStream 存储原语

大家好,我现在是 CS 的第二个学期,我们正在讨论使用 InputStreams 和 OutputStreams 的文件 IO,在这个主题对我来说之前一切都相对简单。我对 BufferedOutputStream 类有点困惑。我知道它将数据存储在指定大小的缓冲区中,然后一次将其全部写入以比逐字节流更有效。我不明白的是,与 DataInputStream 不同,它具有编写特定原语的方法,我只能编写字节数组。我将如何使用 BufferedOutputStream 存储 int、long、double 等原语。提前谢谢你们!

0 投票
1 回答
164 浏览

java - 我们可以将多个数据附加到缓冲输出流中吗?

我在 ByteArrayOutputStream 变量中有来自 3 个文件的数据。但是当我尝试通过 BufferedOutputStream 传递它时,它只发送最后一个文件的数据。

它以某种方式覆盖了 2 个文件的先前数据。

0 投票
0 回答
39 浏览

java - 如何在处理多个文档时跳过 EOF?

MyByteArrayOutputStream包含多个文档的数据(因此超过 1 EOF)。当我尝试使用 发送输出BufferedOutputStream时,它只传递最后一个文档的数据(可能是因为它覆盖了除最后一个之外的所有其他文档)。

有什么方法可以跳过除最后一个之外的所有 EOF 并将其传递给BuffererdOutputStream?

Java 代码如下: