java 输入格式错误,java - 使用DataInputStream时,Java中的字节周围输入格式错误 - 堆栈内存溢出...

本文讲述了如何修正Java中使用DataInputStream读取输入流时遇到的UTF-8格式错误,并探讨了为何BufferedReader被弃用。作者提供了针对DataInputStream的正确读取方式,并讨论了替代的BufferedReader方法和逐行传递给其他方法的解决方案。
摘要由CSDN通过智能技术生成

我有一个代码,它接受输入流并打印它。 当我使用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();

我犯了同样的错误。 我该如何纠正错误?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值