Java:FileOutputStream和ByteArrayOutputStream之间的字符串比较

时间:2013-11-17 19:34:48

标签: java stringbuilder dataoutputstream bytearrayoutputstream

我有一段代码使用围绕DataOutputStream的{​​{1}}写入文件,并使用围绕FileOutputStream的{​​{1}}写入字符串,都使用DataOutputStream方法。

然后我尝试从文件中读取并比较从文件读取的内容到字符串,(ByteArrayOutputStream包裹在围绕b(ByteArrayOutputStream).toString()和{{1}的StringReader周围缠绕writeDouble())并得到相同的结果。

即使

BufferedReader

BufferedReader
当我用

比较两者时,

在终端中打印相同的东西

FileReader

它们永远不会相等。(Str1和Str2为System.out.println(StrRead1.toString()) s)

有人可以帮我一把吗?感谢。

1 个答案:

答案 0 :(得分:0)

writeDouble()的结果是二进制。您没有尝试将结果转换为String或使用Reader读取数据的业务。使用InputStream并比较字节。或者使用DataInputStream并在每种情况下比较readDouble()的结果。

但我真的不知道你为什么要这样做。 writeDouble()是writeDouble()。无论它连接到哪个输出流,它都会做同样的事情。