对计算机而言(Gb、Mb、Kb、b)一切数据的存储大小都是字节表示,b = byte
而一切数据读写也是基于字节的读写。非字节读写只不过是基于字节的读写做特定的编码解码。
换算方式如下:
1024b = 1kb
1024kb = 1mb
1024mb = 1gb
1024gb = 1tb
由此可见,计算机对于byte的换算是 1:1024;
而储存设备厂商呢。他们的换算是1:1000;自然实际容量有缩水。
如:500GB硬盘实际在系统中 = 500 /1024*1000 /1024*1000 /1024*1000 ≈ 465GB。
64GB手机实际系统中 = 64 /1024*1000 /1024*1000 /1024*1000 ≈ 59GB。
*对于电脑中的文件可以验证。我们可以右键属性。看到该文件的字节大小。依照换算公式整除为最小正数为止。这个大小=文件默认小时大小
铺垫后。让我们看一段java的IO代码(请关注代码逻辑本身,无视异常、健壮性等无关内容)。
//已经a.txt文件中的内容为“abcdefg”
/* 1 */ InputStream is = new FileInputStream("a.txt");
/* 2 */ byte[] byt = new byte[100];
/* 3 */ int len = 0