У меня есть кусок кода, который записывает в файл, используя DataOutputStream
обернутые вокруг FileOutputStream
, и записывает в строку, используя DataOutputStream
обернут вокруг ByteArrayOutputStream
, как с помощью метода writeDouble()
.Java: String Сравнение между FileOutputStream и ByteArrayOutputStream
Затем я пытаюсь прочитать из файла и сравнить то, что считывается из файла, в строку, (BufferedReader
обернутой вокруг StringReader обернутого вокруг б (ByteArrayOutputStream) .ToString(), и BufferedReader
обернут вокруг FileReader
) и получить тот же результат.
Даже если
System.out.println(StrRead1.toString())
и
System.out.println(StrRead2.toString())
печать то же самое в терминале, когда я сравнить два используя
(StrRead1.toString().equals(StrRead2.toString()))
они не равны. (Str1 и Str2 - StringBuilder
s)
Может кто-нибудь дать мне руку? Благодарю.
они могут выглядеть визуально одинаково, но возможно, что у них есть пробел, линия и т. Д. –
это может быть конечное пространство. Используйте StrRead1.toString(). Trim(). Equals (StrRead2.toString(). Trim()); –
Попробуйте 'System.out.println (" ["+ StrRead1.toString() +"] ");' (и то же самое для 2). Это хороший способ идентифицировать большинство (но не всех) символов, которые могут вызвать эту проблему. – nhgrif