[英]Convert InputStream to BufferedReader
我正在嘗試使用Android中assets目錄中的InputStream逐行讀取文本文件。
我想將InputStream轉換為BufferedReader以便能夠使用readLine()。
我有以下代碼:
InputStream is;
is = myContext.getAssets().open ("file.txt");
BufferedReader br = new BufferedReader (is);
第三行刪除以下錯誤:
Multiple markers at this line The constructor BufferedReader (InputStream) is undefinded.
我在C中嘗試做的事情如下:
StreamReader file;
file = File.OpenText ("file.txt");
line = file.ReadLine();
line = file.ReadLine();
...
我做錯了什么或我應該怎么做? 謝謝!
BufferedReader
無法直接包裝InputStream
。 它包裝了另一個Reader
。 在這種情況下,你想做的事情如下:
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
BufferedReader構造函數將reader作為參數,而不是InputStream。 您應首先從流中創建一個Reader,如下所示:
Reader reader = new InputStreamReader(is);
BufferedReader br = new BufferedReader(reader);
最好還為StreamReader構造函數提供Charset或字符編碼名稱。 由於流只提供字節,因此將這些字節轉換為文本意味着必須知道編碼。 如果未指定,則假定為系統默認值。
InputStream is;
InputStreamReader r = new InputStreamReader(is);
BufferedReader br = new BufferedReader(r);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.