[英]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.