gpt4 book ai didi

java - java中的BufferedReader和Sockets

转载 作者:行者123 更新时间:2023-12-01 11:48:45 27 4
gpt4 key购买 nike

假设我使用这样的 Socket InputStream,以便读取以下数据:
(第一部分以 ASCII 编码)

    the rest of this message is binaryCRLF  
01100110010...

代码:

InputStreamReader isr = new InputStreamReader(socket.getInputStream()); 
BufferedReader in = new BufferedReader(isr);
String line = in.readLine();

此时我期望的是 line 包含文本:

the rest of this message is binary

那么我想使用原来的socket InputStream:

 InputStream is = socket.getInputStream();  
...

读取消息的二进制部分。

现在,如果 BufferedReader 已经缓冲了一些二进制数据,
这将是一个问题,因为我会丢失部分数据。
我错过了什么吗?

最佳答案

the source of BufferedReader您将看到默认缓冲区大小为 8192。因此调用 readLine()将读取超过第一行的字节到缓冲区中。

使用不同的方法。缓冲输入并读取两次。

关于java - java中的BufferedReader和Sockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28945707/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com