问题标签 [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.
java - 在 FileOutputStream 与 BufferedOutputStream 上测试 write(byte[])
write(byte[])
使用fromFileOutputStream
和的方法时是否存在实际性能差异BufferedOutputStream
?
我在 HDD 上测试了写入 500 MB 的文件,结果是 13 秒和 12 秒:
和,
我在BufferedOutputStream
效率方面缺少什么?
java - BufferedOutputStream 制作空白文件
我有以下代码用于将文件从客户端上传到服务器 tcp,但是当我尝试手动打开时,文件为空,为什么重量好..我在 stackOverflow 上看了很多帖子,但没有任何改变 Thx(对不起,我的英语不好)
服务器:
公共类 ThreadServer 扩展 Thread{
}
客户:
}
java - RandomAccessFile.seek() 是如何工作的?
根据API,这些是事实:
- 该
seek(long bytePosition)
方法简单地说,将指针移动到bytePosition
参数指定的位置。 - 当
bytePosition
大于文件长度时,除非在(新)端写入一个字节,否则文件长度不会改变。 - 如果跳过的长度中存在数据,则此类数据保持不变。
但是,我很好奇的情况是:当有一个没有数据的文件(0字节)并且我执行以下代码时:
0
所有 100,000 字节几乎立即被填满。我可以在 10 毫秒内时钟超过 200GB。
但是,当我尝试使用其他方法(例如BufferedOutputStream
相同的过程)写入 100000 个字节时,几乎需要无限长的时间。
造成这种时间差异的原因是什么?有没有更有效的方法来创建一个n
字节文件并用 s 填充它0
?
编辑: 如果数据没有实际写入,文件是如何填充数据的?示例此代码:
这是输出:
另外,如果文件足够大,由于空间不足,我无法再写入磁盘。
java - apache POI XWPF 文档中的图像有颜色失真
我正在尝试设计一个报告模板,其中包含许多(数百个)由超链接引用的图像。我希望文档小于 25Mb(出于电子邮件和其他原因),因此我尝试使用以下代码压缩图像:
图像写入文档,但颜色失真。就我而言,它们都是红色/橙色。关于导致此/做什么的任何想法?
java - 你能阻止 BufferedOutputStream (java) 传输吗?
我正在尝试使用将字符串写入 OutputStream
我使用此方法成功传输了一个不同的字符串,然后(响应通过流接收到的消息)尝试发送上面的消息。
在这个调用中,写操作在“B”被写入后立即刷新缓冲区,导致两个数据包通过流发送。第一个是单个字符;第二个包含字符串的其余部分。在最近更新服务器之前,这在 Linux 上正常工作。
有什么方法可以强制 OutputStream 或 BufferedOutputStream 将 write() 视为原子操作,或者在 flush() 之前不传输?
我也试过
结果相同。
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
和
都好 ...
java - 服务器和客户端发送文件 Java
我正在编写一个具有客户端和服务器的程序,客户端将在其中将 img 文件发送到服务器。下面的代码是针对服务器的,它会obIn.read
在最后一次运行时卡在 while 循环上,因此它永远无法返回 -1 并中断循环。它确实打破了我的客户的循环。所以我试图在客户端循环之后刷新它,但它似乎没有任何好处。我不想关闭 obOut,因为这将关闭我想要保持打开的套接字。服务器端是它从 obIn(作为实例变量的输入流)接收数据并将其写入我创建的文件的地方。
此图像是服务器在顶部,客户端在底部的输出。那是我发现服务器卡住的地方。
这是我找到此方法并尝试使其适用于我的设置的地方。这是我第一次使用流。
java - 如何使用 BufferedOutputStream 存储原语
大家好,我现在是 CS 的第二个学期,我们正在讨论使用 InputStreams 和 OutputStreams 的文件 IO,在这个主题对我来说之前一切都相对简单。我对 BufferedOutputStream 类有点困惑。我知道它将数据存储在指定大小的缓冲区中,然后一次将其全部写入以比逐字节流更有效。我不明白的是,与 DataInputStream 不同,它具有编写特定原语的方法,我只能编写字节数组。我将如何使用 BufferedOutputStream 存储 int、long、double 等原语。提前谢谢你们!
java - 我们可以将多个数据附加到缓冲输出流中吗?
我在 ByteArrayOutputStream 变量中有来自 3 个文件的数据。但是当我尝试通过 BufferedOutputStream 传递它时,它只发送最后一个文件的数据。
它以某种方式覆盖了 2 个文件的先前数据。
java - 如何在处理多个文档时跳过 EOF?
MyByteArrayOutputStream
包含多个文档的数据(因此超过 1 EOF
)。当我尝试使用 发送输出BufferedOutputStream
时,它只传递最后一个文档的数据(可能是因为它覆盖了除最后一个之外的所有其他文档)。
有什么方法可以跳过除最后一个之外的所有 EOF 并将其传递给BuffererdOutputStream
?
Java 代码如下: