Android开发:文件可能已压缩

5
这是我在SO上的第一篇帖子,请多指教。我目前正在开发一个Android应用程序,尝试简单地读取一个.txt文件。我已经克服了许多不同的障碍(这是我第一次尝试读入文本文件),但现在遇到了一个非常严重的问题,它会抛出以下错误信息:该文件不能作为文件描述符打开;很可能已被压缩。
assetmgr = thiscontext.getAssets();
try {
    descriptor = assetmgr.openFd("level1.txt");
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

上面的代码尝试读取文本文件,但是它将null返回给描述符(descriptor),这显然会导致后面的错误。
inputStream = new FileReader(descriptor.getFileDescriptor());

这是初始化输入流以解析文本文件的行,该行位于我创建的循环范围之外。

所以我的问题是如何修复txt文件未正确打开并且似乎被压缩的问题。

如果我在发布时犯了任何错误,请告诉我,以便我可以更正它们以获得最好的建议!

干杯!


你把这个 level1.txt 文件放在哪里了? - wtsang02
嗨,@wtsang02。我已经将文件放在资产文件夹中。所以对于我个人来说,它应该是AndroidDevelopment/crisis/assets。 - user2639049
1个回答

5
所以我的问题是如何修复txt文件无法正确打开且似乎被压缩的问题。不要调用openFd(),而是直接调用open()获取一个InputStream,并将你的FileReader替换为InputStreamReader(如果你真的需要Reader接口)。

那似乎已经消除了我的错误信息。非常感谢。现在我没有得到期望的结果,但这是以后另一个跨越的障碍。 - user2639049
7
我在内容提供程序中使用AssetsFileDescriptor,我必须返回此AssetFileDescriptor,而不能返回InputStream,那么现在该怎么办? - Anas Reza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接