如何获取二进制文件的字节数?理论计算t.dat字节数的方法
嘿,这两个问题我来给你拆解清楚!
一、如何获知一个二进制文件的字节数?
日常里有好几种简单的方式,分系统来说:
- Windows系统:
- 右键点击文件,选择「属性」,在「常规」标签页里就能看到「大小」,括号里的数字就是字节数。
- 或者打开命令提示符,输入
dir /-c 你的文件名,/-c参数会去掉千位分隔符,直接显示纯数字的字节数。
- Linux/macOS系统:
- 打开终端,输入
ls -l 你的文件名,输出结果的第五列就是文件的字节数。 - 也可以用
wc -c 你的文件名,这条命令会直接返回文件的字节数。
- 打开终端,输入
- 用代码获取:
- 比如Java里可以用
new File("文件名").length()直接得到字节数;Python的话用os.path.getsize("文件名")也能快速获取。
- 比如Java里可以用
二、不运行代码,计算t.dat的字节数
要算这个,得搞懂Java里DataOutputStream的两个方法到底写了多少字节:
writeInt(12345)的字节数:
Java的int类型是固定32位(4字节),不管你写的数值是1还是12345,writeInt都会把它转换成4字节的二进制数据写入文件,所以这部分贡献4字节。writeUTF("5678")的字节数:writeUTF的规则是先写一个2字节的长度前缀,再写字符串的UTF-8编码内容:- 长度前缀:是一个无符号16位整数,用来表示后面UTF-8编码的字节数。这里字符串"5678"的每个字符都是ASCII字符,在UTF-8里每个占1字节,总共4字节,所以前缀是2字节(用来表示数字4)。
- UTF-8内容:4个ASCII字符,每个1字节,共4字节。
所以这部分加起来是2+4=6字节。
把两部分加起来:4+6=10字节,所以这个程序生成的t.dat文件大小是10字节。
内容的提问来源于stack exchange,提问作者dave
相关产品推荐
相关产品推荐

