Java中的二进制文件

2022-06-17 00:00:00 binaryfiles java

我知道二进制文件不能被文本编辑器读取,它们只能被程序读取。 但是当我使用Java(字节)创建二进制文件时,我可以打开文件并读取它吗?为什么会发生这种情况? 换句话说,我看到的是纯文本,而不是一系列0和1。 我知道在Java中有基于字节的流和基于字符的流。当我使用基于字节的流(如FileOutputStream)时,输出是字符而不是字节。

    File file = new File("Myfile.dat"); // .txt or .bin
    FileOutputStream fos = new FileOutputStream(file);
    String data = "Hello, world";
    fos.write(data.getBytes());
    fos.close();

当我使用记事本打开Myfile.dat时,我希望看到特殊字符或0和1,但我可以看到内容"Hello world"。所以我不理解基于字节的流是如何以二进制格式存储字符的?


解决方案

并不是"二进制文件"不能被文本编辑器读取,而是"包含对文本编辑器无用的字符的二进制文件无法以有意义的方式读取/编辑"。毕竟,所有文件都是二进制文件:这仅取决于其中包含的内容。

相关文章