1

我希望能够读取我的应用程序附带的文件myFile.txt,无论是在 assets 文件夹、 res/raw 文件夹中,无论何时,都没有关系。

但!我不想要该文件的 InputStream ...我希望能够执行以下操作:

while ((reader = is.readLine()) != null) { ... }

我四处搜寻,发现了一些很接近但不是我真正想要的东西..

感谢您的任何帮助。

编辑 - 我正在尝试的一些代码:

InputStream in = this.mCtx.getResources().openRawResource(R.raw.myFile);
Reader is = new BufferedReader(new InputStreamReader(in, "UTF8"));

(现在怎么办?Reader 类没有 readLine() 方法)

4

6 回答 6

4

只是改变

Reader is = new BufferedReader(new InputStreamReader(in, "UTF8"));

BufferedReader is = new BufferedReader(new InputStreamReader(in, "UTF8"));

BufferedReaderreadLine()方法。您不必要地向上转换到 Reader 并失去附加功能。

于 2012-08-06T06:44:08.673 回答
1

使用 BufferedReader 而不是 Reader 进行定义。

BufferedReader is = new BufferedReader(new InputStreamReader(in, "UTF8"));

Bufferedreader 有 readline 方法但没有 reader

于 2012-08-06T06:43:55.193 回答
1

您可以将文件存储在 sdcard 中,并在以下代码中的“file_path”中指定其位置:

File selectedFile = new File("file_path");
FileInputStream fstream = new FileInputStream(selectedFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(fstream));

进而

while ((strLine = reader.readLine()) != null)
{
        //Do Stuff Here
}
于 2012-08-06T06:44:26.033 回答
0

关于什么

BufferedReader reader = new BufferedReader(new BufferedInputStream(is));

编辑:对不起-我的错。只需坚持使用 BufferedReader。打开资源可以使用

InputStream is = getClass().getResourceAsStream("/org/example/res/my_file.txt");

Class#getResourceAsStream

于 2012-08-06T06:35:15.870 回答
0

使用这些步骤来完成它....

File f = new File("/sdcard/MyFolder/MyFile.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);

StringBuilder sb = new StringBuilder();
String str = new String();

while((br.readLine())!=null){


   sb.append(br.readLine());  


 }

str = sb.toString();
于 2012-08-06T07:00:24.170 回答
0

我认为你应该使用类似的东西:

BufferedReader in = new BufferedReader(new     InputStreamReader(activity.getAssets().open("yourfile")));

StringBuilder 缓冲区 = new StringBuilder(); while ((line = in.readLine()) != null) buffer.append(line).append('\n');

在您的资产目录中,只需将您的文件放入不带 .txt 扩展名的文件中。希望这对您有所帮助。

于 2012-08-06T07:18:26.743 回答