Неправильный ввод байта в Java при использовании DataInputStream - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть код, который принимает входной поток и печатает его. Когда я использую 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();

Я получаю ту же ошибку. Как я могу исправить ошибку?

...