Java Android读取与应用程序打包的.txt文件

Java Android读取与应用程序打包的.txt文件,java,android,file,embedded-resource,Java,Android,File,Embedded Resource,我希望能够读入我的应用程序附带的文件myFile.txt,无论是在assets文件夹还是res/raw文件夹中,只要有,这都无关紧要 但是!我不想要那个文件的输入流。。。我希望能够做到以下几点: while ((reader = is.readLine()) != null) { ... } 我四处搜索,找到了一些很近的东西,但并不是我真正想要的 谢谢你的帮助 编辑-我正在尝试的一些代码: InputStream in = this.mCtx.getResources().openRawRes

我希望能够读入我的应用程序附带的文件myFile.txt,无论是在assets文件夹还是res/raw文件夹中,只要有,这都无关紧要

但是!我不想要那个文件的输入流。。。我希望能够做到以下几点:

while ((reader = is.readLine()) != null) { ... }
我四处搜索,找到了一些很近的东西,但并不是我真正想要的

谢谢你的帮助

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

InputStream in = this.mCtx.getResources().openRawResource(R.raw.myFile);
Reader is = new BufferedReader(new InputStreamReader(in, "UTF8"));
现在怎么办?Reader类没有readLine方法

那怎么办

BufferedReader reader = new BufferedReader(new BufferedInputStream(is));
编辑:对不起,是我的错。只要坚持使用BufferedReader。 打开ressource可以使用

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

关于

BufferedReader reader = new BufferedReader(new BufferedInputStream(is));
编辑:对不起,是我的错。只要坚持使用BufferedReader。 打开ressource可以使用

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

有关定义,请参见使用BufferedReader而不是Reader

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

Bufferedreader有readline方法,但没有reader

使用Bufferedreader代替reader进行定义

BufferedReader is = new BufferedReader(new InputStreamReader(in, "UTF8"));
Bufferedreader有readline方法,但没有reader,只需更改即可

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

BufferedReader有一个readLine方法。您不必要地向Reader升级,并丢失了附加功能。

只需更改即可

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


BufferedReader有一个readLine方法。您不必要地向上转换到读卡器,并丢失了附加功能。

您可以将文件存储在SD卡中,并在以下代码中的文件路径中指定其位置:

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
}

您可以将文件存储在SD卡中,并在以下代码中的文件路径中指定其位置:

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
}
使用以下步骤完成

使用以下步骤完成


我想你应该用这样的东西:

BufferedReader in = new BufferedReader(new     InputStreamReader(activity.getAssets().open("yourfile")));
StringBuilder缓冲区=新的StringBuilder; 而line=in.readLine!=空缓冲区.appendline.append'\n'

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

我认为您应该使用以下内容:

BufferedReader in = new BufferedReader(new     InputStreamReader(activity.getAssets().open("yourfile")));
StringBuilder缓冲区=新的StringBuilder; 而line=in.readLine!=空缓冲区.appendline.append'\n'

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

如何创建is对象?从输入流?我将用我正在尝试的一些代码更新OP。如何创建is对象?从输入流?我会用我尝试过的代码更新OP。太棒了,谢谢!编辑-我刚刚注意到我需要为此抛出一个异常。。。你知道在什么情况下会失败吗?请检查-你想看看InputStreamReader和BufferedReader的构造函数中抛出的异常的描述。谢谢!编辑-我刚刚注意到我需要为此抛出一个异常。。。你知道在什么情况下这可能会失败吗?请检查-你想看看InputStreamReader和BufferedReader的构造函数中抛出的异常的描述。这将丢弃新行,因为str没有新行。这可能不是个好主意。。。直接处理每一行或保存新行以供以后处理。这将丢弃新行,因为str没有新行。这可能不是个好主意。。。直接处理每一行或保存新行以供以后处理。