[英]Android read in a .txt file packaged with app
I want to be able to read in a file, myFile.txt , that I ship with my app, either in the assets folder, the res/raw folder, where ever, it does not matter. 我希望能够在我的应用程序附带的文件myFile.txt中读取资产文件夹,res / raw文件夹中的任何位置,这无关紧要。
BUT! 但! I do not want an InputStream of that file... I want to be able to do something like:
我不想要该文件的InputStream ...我想要执行以下操作:
while ((reader = is.readLine()) != null) { ... }
I've searched around and found stuff that was close but not really what I'm looking for.. 我到处搜寻,发现的东西很接近,但并不是我真正想要的东西。
Thank you for any help. 感谢您的任何帮助。
EDIT - some code I was trying: 编辑-我正在尝试的一些代码:
InputStream in = this.mCtx.getResources().openRawResource(R.raw.myFile);
Reader is = new BufferedReader(new InputStreamReader(in, "UTF8"));
(now what? The Reader class doesn't have a readLine() method) (现在是什么?Reader类没有readLine()方法)
Just change 只是改变
Reader is = new BufferedReader(new InputStreamReader(in, "UTF8"));
to 至
BufferedReader is = new BufferedReader(new InputStreamReader(in, "UTF8"));
BufferedReader
has a readLine()
method. BufferedReader
具有readLine()
方法。 You're unnecessarily upcasting to Reader and losing the additional features. 您不必要地转向了Reader,并失去了其他功能。
use BufferedReader instead of Reader for definition. 使用BufferedReader而不是Reader进行定义。
BufferedReader is = new BufferedReader(new InputStreamReader(in, "UTF8"));
Bufferedreader has readline method but not reader BufferedReader具有readline方法,但没有Reader
You can store the file in sdcard and specify its location in "file_path" in below code: 您可以将文件存储在sdcard中,并在以下代码的“ file_path”中指定其位置:
File selectedFile = new File("file_path");
FileInputStream fstream = new FileInputStream(selectedFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(fstream));
And then 接着
while ((strLine = reader.readLine()) != null)
{
//Do Stuff Here
}
What about 关于什么
BufferedReader reader = new BufferedReader(new BufferedInputStream(is));
Edit: Sorry - my fault. 编辑:对不起-我的错。 Just stick with the BufferedReader.
只需坚持使用BufferedReader。 Opening a ressource can be done with
可以通过以下方式打开资源
InputStream is = getClass().getResourceAsStream("/org/example/res/my_file.txt");
See Class#getResourceAsStream ) 请参见Class#getResourceAsStream )
Use these steps to get it done.... 使用以下步骤将其完成...。
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();
I think you should use something like that: 我认为您应该使用类似的方法:
BufferedReader in = new BufferedReader(new InputStreamReader(activity.getAssets().open("yourfile")));
StringBuilder buffer = new StringBuilder(); StringBuilder buffer = new StringBuilder(); while ((line = in.readLine()) != null) buffer.append(line).append('\\n');
while((line = in.readLine())!= null)buffer.append(line).append('\\ n');
And in your assets dir simply put your file without .txt extension. 只需将没有.txt扩展名的文件放在资产目录中即可。 Hope this help you.
希望这对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.