如何在不运行此代码的情况下计算此二进制文件(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/