0

我有一段代码使用DataOutputStream环绕 a写入文件,并使用环绕aFileOutputStream写入字符串,两者都使用该方法。DataOutputStreamByteArrayOutputStreamwriteDouble()

然后,我尝试从文件中读取内容并将从文件中读取的内容与字符串(BufferedReader包裹在包裹 b(ByteArrayOutputStream).toString() 的 StringReader 和BufferedReader包裹 a FileReader)进行比较,并得到相同的结果。

虽然

System.out.println(StrRead1.toString()) 

System.out.println(StrRead2.toString()) 

在终端中打印相同的东西,当我使用比较两者时

(StrRead1.toString().equals(StrRead2.toString()))

它们永远不相等。(Str1 和 Str2 是StringBuilders)

有人可以帮帮我吗?谢谢。

4

1 回答 1

0

writeDouble() 的结果是二进制的。您无需尝试将结果转换为字符串,或使用 Reader 读取该数据。使用 InputStream 并比较字节。或者使用 DataInputStream 并在每种情况下比较 readDouble() 的结果。

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

于 2013-11-17T20:21:26.623 回答