问题标签 [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 回答
1536 浏览

java - 将音频直接发送到扬声器 java

标题基本上讲述了我的故事,我想从 java 程序直接将音频发送到扬声器系统,我想尝试使用从音频文件中获得的字节直接写入 linux 中 /dev/ 中的扬声器,我' 不确定会起作用,但在 Windows 中,我很难过。我在想这样的事情:

我的代码对我来说似乎很简单,不是我想要复杂的代码,而是我想要工作代码。我实际上没有尝试过上面的代码,因为担心我不知道我在做什么,并且可能会伤害或中断我的电脑中的某些东西。

0 投票
3 回答
3945 浏览

java - BufferedOutputStream not writing to standardIO

I am attempting to use the BinaryStdOut.java class provided by Robert Sedgwick in his Algorithms 4E textbook. The code for this class is freely available on his website, but for ease of reference, I will show relevant snippets of it here.

In the class mentioned above, a BufferedOutputStream is declared as follows

This should, if my understanding is correct, allow for out.write() to essentially print to the standard out just as if I were to use System.out.print().

In order to test this, I built a program whose main functions was simply as follows

This would pass the integer 1 to the BinaryStdOut's write() method, which is as follows

The writeByte() code is:

Now my problem is that the test code does not appear to do anything. It compiles and runs successfully, but nothing gets printed in my Terminal as it would if I did a System.out.print() with the same integer.

In order to see if the problem was with the BinaryStdOut class, I copied the BufferedOutputStream declaration right into my main program and then attempted to write directly to that stream, with the same result.

Is there something that I am missing with using BufferedOutputStream.write()?

EDIT: My test program's main function currently looks like this:

0 投票
4 回答
618 浏览

java - 如何使用缓冲区从 FileInputStream 对象中读取特定数量的字节

我有一系列对象存储在一个文件中,连接如下:

文件的大小是序列化的长对象,文件只是文件的原始字节。

我正在尝试从输入文件中提取文件。下面是我的代码:

我的代码在读取第一个 sizeOfFile 后失败;当存储多个文件时,它只是将输入文件的其余部分读入一个文件。

任何人都可以在这里看到这个问题吗?

问候。

0 投票
2 回答
150 浏览

java - 使用BufferdOutputStream写入大量不同小文件的正确方法

我需要编写大量不同的小文件(每个文件大约 30kb)。下面是我的 java 代码:

当然,对于每个文件,我都必须新建一个 File 对象。但是是否有必要为每个不同的文件新建 fileOutputStream 和 BufferdOutputStream 对象?有没有更有效的方法来编写大量小文件?

0 投票
3 回答
291 浏览

java - 将字节数组的长度保存在字节数组中

我在 BufferedOutputStream 中写了三遍:

我想在另一个类中获取写入的值(b1.length),但我得到的值与第一个 *.println() 不同。

例如:

打印 1 --> 123744

打印 2 --> 53858

打印 3 --> 177603

打印 4 --> 96

在这种情况下 println1 和 println4 应该返回相同的大小。我做错了什么?

我检查了写了 1 个字节(177603-123744-53858 = 1),即 b1.length 字节。

有人可以帮我正确写出第一个字节数组的大小吗?

0 投票
0 回答
1676 浏览

android - Android,实时写入视频帧会导致暂停

我正在尝试捕获视频帧,使用 MediaCodec 对其进行编码,然后将其保存到文件中。我正在使用的代码是:

对于到达SurfaceView的onPreviewFrame的每一帧,都会调用AvcEncoder的offerEncoder()方法,如下

问题

现在,我遇到的问题是将编码帧写入文件。似乎在每 N 帧之后(大致,每次都不完全相同),语句outputStream.write(outData, 0, outData.length),在 AvcEncoder 的 offerEncoder 方法中,需要更长的时间(比其他迭代长几倍)。我假设这可能发生在它刷新缓冲区时,实际上是写入文件。(如果这个假设不正确,请纠正我)。

这导致丢弃在那段时间到达的帧(我再次假设,基于视频结果),这反过来导致每 N 帧后录制的视频暂停。

当我将此语句注释掉时,offerEncoder 方法的迭代需要大致相等的时间。

问题

我怎样才能解决这个问题,以便写入文件是顺利的。有没有其他人遇到过这个问题。我看到很多人使用这个代码,但是到目前为止没有人抱怨这个问题(或者至少我没有找到)。

谢谢。

0 投票
1 回答
806 浏览

java - 从文件解密后Java返回不正确的\n字符

我在结合 AES 加密时遇到了 java IO 这个奇怪的问题。我正在将一些加密文本写入二进制文件,在文本末尾附加 \n。说,我美丽的琴弦……看!我的另一根美丽的弦...

当我读回数据时,我得到以下文本作为回报,并带有许多额外的标签:我美丽的字符串......看!我的另一根美丽的弦...

这是我的独立代码:

这是控制台输出(带有额外的空格):

我究竟做错了什么?

0 投票
3 回答
1749 浏览

android - 尽管有flush(),但OkHttp在上传数据之前缓冲了~800kb

我试图发布图像的上传进度,使用 okhttp 作为我的客户端和 mimecraft 上传它们以打包多部分文件。

我添加了日志以在数据写入套接字时写入字节数(如果我能正确判断,以 4kb 的块)然后上传。

问题是,虽然每次写入一大块数据时我都会在输出流上调用flush,但在将~800kb 写入输出流之前似乎什么都没有上传。一旦达到这一点,它似乎上传了大约 100kb,然后应用程序将另外 100kb 写入输出流(就像它释放的空间并且可以再写一点)并继续。

这样做的结果是(超过 1.2mb 的文件)前 800kb 几乎立即被写入/报告,然后它开始上传(通过 charles 网络软件跟踪),然后将在下一个开始读取/写入/上传 100kb几秒钟,然后一旦我将最后一个字节写入输出流,应用程序报告 100% 的上传已写入。尽管网络客户端仍在上传仍在网络缓冲区中的最后 800kb,但这是正确的,并且它会在那里再上传 5-10 秒,然后完成请求。

有没有人有过这种经验,或者知道这是否是 okhttp 中的常见问题?

干杯

编辑:如果我上传一个小于 800kb 的文件,我测试了大约 250kb 和 500kb,它们都在上传之前立即 100% 写入流,但是 3mb 的图像仍然会上传 800kb,然后以大约 100kb 的块的形式消失,并且每次上传一些内容时,写入循环都会再写入 100kb。

0 投票
3 回答
14386 浏览

java - 如何通过 BufferedOutputStream 写入文件?

我想将数据从 复制demo1.txtdemo2.txt,虽然我可以做到,但BufferedReader我想复制BufferedInputStream/ BufferedOutputStream。请告诉我如何做到这一点。

0 投票
1 回答
3054 浏览

java - BufferedOutputStream 多行写入文件

我制作的功能有点问题。我希望每次我给这个函数一个字符串时,它都会将我保存到同一个文件中的一个新行,但实际上现在只保存我给的最后一个字符串。这就像一次又一次地覆盖,需要一些帮助

例如,在 BufferedWriter 中有一个名为 newLine 的方法可以帮助做到这一点。

但是因为我想使用 GZIPOutputStream 类,所以我需要 BufferedOutputStream。

任何想法如何做到这一点?感谢 ypu