资产txt文件的Android路径
Posted
技术标签:
【中文标题】资产txt文件的Android路径【英文标题】:Android path to asset txt file 【发布时间】:2011-06-14 22:19:25 【问题描述】:我在做:
FileReader fin = new FileReader("file:///android_asset/myFile.txt");
在 Android 项目和许多变体中。在运行时我得到一个文件未找到异常。该文件在资产文件夹中存在且正确,因此我的路径一定是错误的。
我这里需要的绝对路径是什么?
【问题讨论】:
你考虑过文件名区分大小写吗? 【参考方案1】:AssetFileDescriptor descriptor = getAssets().openFd("myfile.txt");
FileReader reader = new FileReader(descriptor.getFileDescriptor());
尝试将上述内容与 FileDescriptors 一起使用。似乎是我发现的收集资产路径的最简单的方法。
【讨论】:
@kcoppock:这里 Dalvik 抱怨“FileNotFoundException”,说文件可能被压缩了。 您确定它直接在资产文件夹中,而不是子文件夹中? @kcoppock:直接在assets文件夹里。 @SK9:我不认为这是导致你的问题的原因,但我有一个错字,应该是getFileDescriptor()
,而不是getDescriptor()
,但我假设你已经想到了那个出...
你能发布你的踪迹吗?根据文档,FileReader(FileDescriptor) 不能抛出 FileNotFoundException,而 openFd(String) 只会抛出 IOException。【参考方案2】:
InputStream is = getResources().getAssets().open("terms.txt");
String textfile = convertStreamToString(is);
public static String convertStreamToString(InputStream is)
throws IOException
Writer writer = new StringWriter();
char[] buffer = new char[2048];
try
Reader reader = new BufferedReader(new InputStreamReader(is,
"UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1)
writer.write(buffer, 0, n);
finally
is.close();
String text = writer.toString();
return text;
【讨论】:
那行不通!文本文件是这样的: %PDF-1.5 %���� 54 0 obj 【参考方案3】:你可以使用类似的东西
try
BufferedReader br = new BufferedReader(new InputStreamReader(context.getAssets().open("fileName.txt")));
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
【讨论】:
这就是我目前正在做的事情。使用缓冲阅读器逐行阅读对我的需求来说太慢了。 然后使用 bufferedInputStream 代替 BufferedReader。但是,如果缓冲读取器/缓冲输入流正在减慢您的应用程序,我会感到惊讶,因为它们的存在就是为了加快我们对操作系统资源的 I/O 访问。 快速回复 - 谢谢。我会试试这个。逐行阅读文本文件没有帮助,我需要提前阅读,但这可能不是唯一的原因。我想知道的。【参考方案4】:它没有读取它,因为资产文件夹中的所有资产都被压缩了,尝试将其扩展名更改为 .mp3 然后读取它,这应该会阻止它被压缩。
【讨论】:
【参考方案5】:我发现如果您使用的是 Eclipse 之类的 IDE,您可能需要进行清理——或者删除 bin 目录中的 API。在您进行构建时,资产似乎没有得到更新。
【讨论】:
【参考方案6】:AssetManager am = context.getAssets();
InputStream fs = am.open("myFile.txt");
【讨论】:
以上是关于资产txt文件的Android路径的主要内容,如果未能解决你的问题,请参考以下文章
Android 笔记 ------当你获得文件路劲时获取此文件的信息