Java 二进制文件的大小与将字符串写入文件的大小相同
我想做一个哈夫曼编码系统。我在试图保存编码文本时遇到了一个问题-它比原始大小大。 我认为问题在于0和1的字符串被写为字符串,而不是二进制文件Java 二进制文件的大小与将字符串写入文件的大小相同,java,file-io,Java,File Io,我想做一个哈夫曼编码系统。我在试图保存编码文本时遇到了一个问题-它比原始大小大。 我认为问题在于0和1的字符串被写为字符串,而不是二进制文件 byte[] bytes = s.getBytes(); try { FileOutputStream fout = new FileOutputStream(newFileName); DataOutputStream dout = new DataOutputStream(fout); dout.write(bytes
byte[] bytes = s.getBytes();
try {
FileOutputStream fout = new FileOutputStream(newFileName);
DataOutputStream dout = new DataOutputStream(fout);
dout.write(bytes);
dout.close();
System.out.println("File encoded");
}
catch (IOException e) {
e.printStackTrace();
}
输出文件的大小与我用手写记事本写0和1时的大小相同。由于我正在转换为字节,输出文件不应该更小吗?No,
getBytes
返回每个字符的字节值,所以0x30='0',0x31='1',0x32='2',依此类推。