Java 如何修复OutputStream等不写入值的问题;0";?

Java 如何修复OutputStream等不写入值的问题;0";?,java,Java,我一直在尝试制作一个系统,将x字节写入一个文件。但我发现,每当你试图写一个值为“0”的字节时,它都不会为它写任何东西,而且,很明显,它也不会在后面写任何东西 所以,我需要一些方法来写出所有这些数据,我不能让它每次遇到0都停止。有什么有效的方法可以做到这一点吗 public static void main(String[] args) throws IOException { byte[] data = new byte[] { 24, 24, 24, 5, 0, 5, 5, 5, 0,

我一直在尝试制作一个系统,将x字节写入一个文件。但我发现,每当你试图写一个值为“0”的字节时,它都不会为它写任何东西,而且,很明显,它也不会在后面写任何东西

所以,我需要一些方法来写出所有这些数据,我不能让它每次遇到0都停止。有什么有效的方法可以做到这一点吗

public static void main(String[] args) throws IOException {
    byte[] data = new byte[] { 24, 24, 24, 5, 0, 5, 5, 5, 0, 0, 0};
    OutputStream out = new FileOutputStream("Test.txt", true);
    out.write(data, 0, data.length);
    out.close();
}
这将成功写入每个字节,直到它到达索引4处的第一个0。然后就停了

以下是输出:


编辑:已解决

这会将0字节写入文件


Eclipse在第一个0字节之后不显示任何内容。这大概是Eclipse中的一个bug。

是什么让您认为它在索引4处停止了写入?你的代码对我来说是正常的。@Chall是的,它对我来说也是正常的。我已经试过很多次了。我在Linux上运行它有什么影响吗?你如何验证这一点?查看
hextump
,我看到了
18 18 18 05 00 05 05 05 00 00
,这是正确的。请记住,您正在写入字节。您是如何阅读该文件的,从而得出该文件编写不正确的结论的?如果您使用文本编辑器查看它,它很可能会尝试将其显示为ASCII并显示一堆垃圾字符。使用十六进制编辑器或查看器,如@August。