我以为在java中的字符是16位,如java doc建议。是不是弦的情况?我有一个存储的对象到一个文件代码:Java中的字符是1个字节还是2个字节?
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个字节。有人知道为什么通过使用ASCII而不是UNICODE来处理可以被ASCII支持的字符串,java是否会自动节省空间?谢谢
只是一个想法:难道不是Java保存在UTF-8中吗? – Rekin 2011-05-13 06:48:04
是的,它确实存储了字符串修改后的UTF-8 ... – MJB 2011-05-13 06:53:44