gpt4 book ai didi

java - 在不缓冲的情况下从 InputStream 中读取行

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:37 25 4
gpt4 key购买 nike

Java 是否有一种简单的方法可以在不缓冲的情况下从 InputStream 中读取一行? BufferedReader 不适合我的需求,因为我需要通过同一个连接重复传输文本和二进制数据,而缓冲只是阻碍。

最佳答案

最终是手动直接从 InputStream 逐个字节读取而没有包装 InputStream。我尝试过的所有东西,比如 Scanner 和 InputStreamReader,都会提前读取(缓冲)输入 :(

我想我错过了一些情况,比如\r。

public static String readLine(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int c;
for (c = inputStream.read(); c != '\n' && c != -1 ; c = inputStream.read()) {
byteArrayOutputStream.write(c);
}
if (c == -1 && byteArrayOutputStream.size() == 0) {
return null;
}
String line = byteArrayOutputStream.toString("UTF-8");
return line;
}

关于java - 在不缓冲的情况下从 InputStream 中读取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488433/

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