簡體   English   中英

將InputStream轉換為BufferedReader

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM