Pan*_*Pan 2 java file-io filesize printwriter
下面的方法返回文件大小2.由于它很长,我假设java计算的文件大小是2*64位.但实际上我保存了32位int + 16位char = 48位.为什么Java会进行这种转换?此外,无论是char还是int,Java是否隐式存储文件中的所有内容?如何获得48位的准确大小?
public static void main(String[] args)
{
File f = new File("C:/sam.txt");
int a= 42;
char c= '.';
try {
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
PrintWriter pw = new PrintWriter(f);
pw.write(a);
pw.write(c);
pw.close();
System.out.println("file size:"+f.length());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
不,你写了两个字.写入器用于文本数据,而不用于二进制数据.write(int)的文档说:
写一个字符.
由于平台的默认字符编码将这两个字符存储为单个字节(每个字节),因此文件长度为2(2个字节:文件的长度以字节为单位,如文档所述).使用文本编辑器打开文件,看看里面有什么.
Java API文档对于了解类或方法的作用非常有用.你应该阅读它.
| 归档时间: |
|
| 查看次数: |
1269 次 |
| 最近记录: |