将InputStream转换为BufferedReader
我试图从Android的资产目录中使用InputStream逐行读取文本文件。
我想将InputStream转换为BufferedReader以便能够使用readLine()。
我有以下代码:
InputStream is; is = myContext.getAssets().open ("file.txt"); BufferedReader br = new BufferedReader (is);
第三行删除以下错误:
这条线上有多个标记 构造函数BufferedReader(InputStream)是未知的。
我想在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构造函数将读取器作为参数,而不是InputStream。 您应该先从stream中创build一个Reader,如下所示:
Reader reader = new InputStreamReader(is); BufferedReader br = new BufferedReader(reader);
最好还为StreamReader构造函数提供一个字符集或字符编码名称。 由于stream只是提供字节,所以将它们转换为文本意味着编码必须是已知的。 如果您没有指定,则假定系统默认。
InputStream is; InputStreamReader r = new InputStreamReader(is); BufferedReader br = new BufferedReader(r);