解释用于将int i输出到文件的以下两个代码片段的输出之间的差异:
i)个
PrintWriter outfile = new PrintWriter(new FileWriter("ints.txt"));
outfile.print(i);
ⅱ)
DataOutputStream out = new DataOutputStream(new FileOutputStream("ints.dat"));
out.writeInt(i);
我认为Printer writer采用字符串并将其转换为unicode字符流,而dataoutput stream将数据项转换为字节序列。
你还会添加什么?
答案 0 :(得分:1)
文件只包含字节,所以它最终都以字节结尾。
String已经是一个字符串。将String写入文件时,必须将其转换为字节流。
int是四个字节。 writeInt()将其转换为大端数字。
答案 1 :(得分:1)
数据输出流允许 应用程序编写原始Java数据 类型到一个输出流 便携式方式。然后应用程序可以 使用数据输入流来读取 数据重新进入。
打印格式化的表示形式 对象到文本输出流。
一切都只是字节,但它们代表不同的东西。使用DataOutpuStream
,您可以获得直接读回原始Java类型int
的字节,而使用PrintWriter
则不会。
答案 2 :(得分:0)
可能重复已经说过的内容,但只是为了让它更明确:
当你使用打印机,并说你的int值为65时 - 打印作者将打印2个字符:'6'和'5'
当你使用输出流时,这会打印字节,因此它会将一个值为65的字节写入文件 - 这恰好是ASCII / UTF-8中用于'A'的字符代码,所以如果你打开文本编辑器中的文件您将看到一个“A”字符 - 而不是上面的“6”后跟“5”。