gpt4 book ai didi

java - 如何使用 Java 将 RAW 数据写入文件?例如与 : nc -l 8000 > capture. raw 相同

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:23 27 4
gpt4 key购买 nike

在 TCP 中,我从 IP 摄像机接收媒体流作为 RAW。根据那里的建议,我需要把它写成文件。然后我可以用 VLC 等媒体播放器播放它。

但是当我将其写入文件并使用媒体播放器播放时,它永远不会播放损坏。

比较原始文件后,我发现我的 Java 用错误的字符编写了它。并且示例文件显示不同。我该如何解决此类文件写入问题,以下是我的编写方式:

byte[] buf=new byte[1024];
int bytes_read = 0;
try {
bytes_read = sock.getInputStream().read(buf, 0, buf.length);
String data = new String(buf, 0, bytes_read);
System.err.println("DATA: " + bytes_read + " bytes, data=" +data);

BufferedWriter out = new BufferedWriter(
new FileWriter("capture.ogg", true));
out.write(data);
out.close();

} catch (IOException e) {
e.printStackTrace(System.err);
}

最佳答案

您不应该对二进制数据使用ReadersWritersStrings。坚持使用 InputStreamsOutputStreams

即改变

  • BufferedWriter -> BufferedOutputStream,
  • FileWriter -> FileOutputStream
  • 而不是 String,只需使用 byte[]

如果您正在处理套接字,我必须建议您查看 NIO package虽然。

关于java - 如何使用 Java 将 RAW 数据写入文件?例如与 : nc -l 8000 > capture. raw 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648478/

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