[英]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.