java - 如何知道二进制文件的字节数?

标签 java binaryfiles utf dataoutputstream

如何在不运行此代码的情况下计算此二进制文件(t.dat)的字节数 (作为一个理论问题)? 假设您使用默认的 ASCII 编码在 Windows 上运行以下程序。

public class Bin {
     public static void main(String[] args){
     DataOutputStream output = new DataOutputStream(
            new FileOutputStream("t.dat"));
     output.writeInt(12345);
     output.writeUTF("5678");
     output.close();
     }
}

最佳答案

您不必尝试计算每个写入操作输出的字节数,只需使用 new File("t.dat").length() 检查文件关闭后的长度即可。

如果你想在不直接检查长度的情况下计算出来,int 占用 4 个字节,而用 writeUTF 写入的内容占用 2 个字节来表示编码后的内容字符串的长度,加上字符串本身占用的空间,在本例中是另外 4 个字节 - 在 UTF-8 中,“5678”中的每个字符需要 1 个字节。

所以这是 4 + 2 + 4,即 10 个字节。

关于java - 如何知道二进制文件的字节数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50184660/

相关文章:

java - HQL 子查询查询选择

java - Zookeeper运行在两个节点上

c++ - 如何在 C++ 中将 ASCII 字符串转换为 UTF8 字符串?

vim - 输入带有 8 位十六进制代码的 Unicode 字符

JavaFx,不在开头显示内容

Java 集成或嵌入式浏览器

javascript - 如何在 javascript 中读取二进制文件(xml 样式)?

java - 从二进制文件中读取任意数量的对象

file-io - 用 Erlang 扫描大二进制文件

javascript - Angular 将文本下载为文件,在记事本中不显示换行符