【发布时间】:2020-09-11 14:07:57
【问题描述】:
我有一段这样的代码:
String a="10100101010101001010101001....."
for(int i=0;i<a.length()-8;i+=8){
String k=a.substring(i,i+8);
int num=Integer.parseInt(k,2);
char o=(char)(num);
out.print(o);//print to file
}
基本上,我们在收到二进制字符串后将 ascii 字符打印到 txt 文件中。 此循环运行的次数和打印的字符数约为 1100。 然而,检查这个 txt 文件的文件大小,它大约是 1700 字节。这有什么意义,为什么会发生这种情况? 但是,如果我尝试将字符打印到“正常”(az、0-9 等)的 txt 文件中。它似乎占用与字符相同的字节数(1 字节 = 1 ascii 字符 = 8 位)。
不知何故,当我打印那些“奇怪”的 ascii 字符时,会使用更多的内存。有没有办法解决这个问题? (准确打印字符数)
【问题讨论】:
-
Java
Strings并且字符不保存在 ASCII 中。它们以 UTF-16 格式保存,OutputWriter也使用 UTF 编码,不一定是 ASCII。必须了解您的平台以及如何构建out才能更精确..
标签: java file memory text binary