Я новичок в java. Проблема, что я сейчас нахожусь в том, что я отправляю имя файла с клиента на сервер. Когда я печатаю это имя на сервере, он печатает отлично, но он не соответствует строке, которую я жестко закодировал. Например: я отправляю «Lecture.pdf» в качестве имени файла от клиента к серверу, а затем я сопоставляю полученное имя файла с жестко закодированной строкой «Lecture.pdf», оно не совпадает и в конечном итоге возвращает false. Я ожидаю, что равный метод вернет true (как и должно).string.equal метод не работает
Это фрагмент кода, который может показать проблему. «Сервер» является объектом сокет здесь, и я читаю имя файла, используя массив байтов:
InputStream is = null;
byte response [] = new byte [50];
is = server.getInputStream();
is.read(response);
String str_res = new String (response);
System.out.println ("Got reS: " + str_res);
System.out.println ("Result: "+(response.toString()).equals ("Lecture.pdf"));
Это не сработало. Должно ли response.toString() быть достаточно, чтобы преобразовать массив байтов в строку? –
Распечатайте строку и распечатайте длину строки, чтобы увидеть, что происходит. Вероятно, вы используете неправильное количество байтов. Я обновил ответ. Удачи! –
Вы правы! В этом была проблема. Большое спасибо :) –