[英]Java: String Comparison between FileOutputStream and ByteArrayOutputStream
我有一段代码,使用包裹在FileOutputStream
周围的DataOutputStream
写入文件,并使用包裹在ByteArrayOutputStream
周围的DataOutputStream
写入字符串,两者均使用writeDouble()
方法。
然后,我尝试从文件读取并将从文件读取的内容与字符串进行比较( BufferedReader
包裹在StringReader包裹在b(ByteArrayOutputStream).toString()和BufferedReader
包裹FileReader
),并得到相同的结果。
即使
System.out.println(StrRead1.toString())
和
System.out.println(StrRead2.toString())
当我比较两个使用时在终端上打印相同的东西
(StrRead1.toString().equals(StrRead2.toString()))
它们永远不相等。(Str1和Str2是StringBuilder
)
有人可以帮我吗? 谢谢。
writeDouble()的结果是二进制的。 您无需尝试将结果转换为String或使用Reader读取该数据。 使用InputStream并比较字节。 或使用DataInputStream并在每种情况下比较readDouble()的结果。
但是我真的不知道为什么要这么做。 writeDouble()是writeDouble()。 无论连接到哪个输出流,它都执行相同的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.