У меня есть код, который принимает входной поток и печатает его. Когда я использую BufferedReader
, код печатает поток в консоли, но когда я использую DataInputStream
, я получаю следующую ошибку:
Exception in thread "main" java.io.UTFDataFormatException: malformed input around byte 6351
at java.io.DataInputStream.readUTF(DataInputStream.java:656)
at java.io.DataInputStream.readUTF(DataInputStream.java:564)
at Test.main(Test.java:14)
Код следующий:
public class Test {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("host", port);
DataInputStream in = null;
// BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
in = new DataInputStream(socket.getInputStream());
while(true){
// System.out.println(bufferedReader.readLine());
System.out.println(in.readUTF());
}
}
}
Также, когда я использую readLine()
с DataInputStream
, intellij
показывает, что это устарело. Наконец, мне нужно прочитать поток и передать его построчно другому методу, подобному этому:
line = in.readUTF();
Я получаю ту же ошибку. Как я могу исправить ошибку?