[英]BufferedReader and InputStream wrong read
我从流中读取数据时遇到大问题。
我有这样的代码:
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String topic = bufferedReader.readLine();
while ((bytesRead = inputStream.read(array, 0, array.length)) != -1) {
// do something with array of bytes
}
首先,我要获取主题名称,即以\\ n结尾的单个单词。 接下来,我想读取其余数据(我正在分块读取)。
问题是inputStream.read返回-1,因为所有内容都在bufferedReader中读取。 我该如何解决?
继续使用bufferedreader,不要从侧面/下方读取数据。 最后一个读取器已缓冲,因此可以提前读取,因此输入流为空。
就像管道。 如果您开始在其中部钻一个孔,则应该已经有油流过该新孔,因此您无法通过打开中部的管道来取回它。
您需要从BufferedReader中读取所有数据。 包装好inputStream之后,就无法轻松返回。 或者,您可以通过读取char并检查换行符来从inputStream中读取第一行。
您正在使用InputStream实例化BufferedReader的对象,因此InputStream的内容已“保存”在BufferedReader中! 因此,像这样继续读取您的BufferedReader对象:
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String topic = bufferedReader.readLine();
while ((bytesRead = bufferedReader.read(array, 0, array.length)) != -1) {
// do something with array of bytes
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.