Java .bin 文件被写入标准 .txt 文件

标签 java file binary

我正在尝试编写一个将字符串写入 .bin 文件的程序,但由于某种原因,保存的文件采用标准 .txt 文件的形式。我编写了一个 .bin 和 .txt 文件用于与大字符串进行比较,它们的大小相同。 值得注意的是,我今天早些时候尝试过这一点,当我写入 .bin 时,在记事本中打开时,它是一堆无法读取的字符,而且它的文件大小也比文本文件小。我怎样才能再次实现这一目标?

import java.io.DataOutputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;

  public class Core
  {
    public static void main(String[] args) throws IOException
    {
        String outName = "myData.bin";

        byte[] b = "Hello world!".getBytes("UTF-8");
        DataOutputStream out = new DataOutputStream(new FileOutputStream(outName));
        out.write(b);
        out.close();
    }
}

最佳答案

如果我理解正确的话,文本文件只是一种特定类型的二进制文件:https://www.thecrazyprogrammer.com/2018/05/difference-between-text-file-and-binary-file.html
当您编写文件时,您仅使用文本,因此一切看起来都如您所期望的那样。当我尝试运行您的代码并插入一些随机字节时,我的计算机不知道使用什么程序来打开它,并显示了您期望的奇怪字符

关于Java .bin 文件被写入标准 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58988608/

相关文章:

java - 如何在viewPager中随机排列内容?

java - Java 中分离的前端和后端 - Spring MVC 框架

java - 如何用Java从formdata中获取有意义的数据?

java - 为什么切换会导致无法解决错误?

python - 如何读取具有特定字符串的文件的最后 n 行?

c - 在c中使用exe文件

linux - "grep"二进制文件中 ascii 字符串的偏移量

go - 在一个变量中存储 2 个值

file - Laravel 文件上传和 File_hash 作为名称

c# - 用二进制表示子集