Приведенный ниже метод возвращает размер файла как 2. Поскольку он длинный, я предполагаю, что размер файла, который рассчитывает Java, равен 2 * 64 битам.Но на самом деле я сохранил 32-битный int + 16-битный символ = 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();
}
}