gpt4 book ai didi

java - 在 Java 中确定并打印文件大小

转载 作者:行者123 更新时间:2023-11-30 05:56:52 25 4
gpt4 key购买 nike

下面的方法返回文件大小为2。由于它很长,我假设java计算的文件大小是2*64位。但实际上我保存了一个32位int + 一个16位char = 48位。为什么Java要进行这种转换呢?另外,Java 是否隐式地将所有内容存储在文件中,无论是 char 还是 int ?如何获得 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();
}

}

最佳答案

没有。你写了两个字。写入器用于文本数据,而不是二进制数据。 documentation of write(int)说:

Writes a single character.

由于平台的默认字符编码将这两个字符存储为单个字节(每个),因此文件长度为 2(2 个字节:文件的长度以字节为单位, as the documentation says )。使用文本编辑器打开该文件,然后查看其中的内容。

Java API 文档对于了解类或方法的作用非常有用。你应该阅读它。

关于java - 在 Java 中确定并打印文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6588243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com