Java是否有一种简单的方法可以从InputStream中读取一行数据而不需要缓冲?BufferedReader对我的需求来说不太适合,因为我需要通过同一连接重复传输文本和二进制数据,而缓冲只会妨碍这个过程。
Java是否有一种简单的方法可以从InputStream中读取一行数据而不需要缓冲?BufferedReader对我的需求来说不太适合,因为我需要通过同一连接重复传输文本和二进制数据,而缓冲只会妨碍这个过程。
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;
}
你最好使用BufferedReader读取InputStream,并将读取的行附加到一个字符串中。
然后,您可以随意操作该字符串,而不必担心缓冲。