我以为java中的字符是16位,正如java文档中所建议的。那么对于字符串来说不是这种情况吗?我有一段代码将一个对象存储到文件中:
public static void storeNormalObj(File outFile, Object obj) {
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream(outFile);
oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
oos.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
oos.close();
try {
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
基本上,我尝试将一个字符串
"abcd"
存储到文件 "output"
中,当我用编辑器打开 output
并删除非字符串部分后,剩下的只是字符串 "abcd",总共只有4个字节。有人知道为什么吗?Java 是否会自动使用 ASCII 而不是 UNICODE 来保存可以支持 ASCII 的字符串以节省空间?谢谢。