【问题标题】:Android Development : File is probably compressedAndroid开发:文件可能被压缩
【发布时间】:2013-08-01 02:17:49
【问题描述】:

这将是我在 SO 上的第一篇文章,所以请保持温和。我目前正在开发一个Android应用程序,并试图简单地读取一个.txt文件。在克服了许多单独的障碍之后(这是我第一次尝试读取文本文件),我遇到了一个相当讨厌的问题抛出错误信息

这个文件不能作为文件描述符打开;它可能被压缩了。

assetmgr = thiscontext.getAssets();
try {
    descriptor = assetmgr.openFd("level1.txt");
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

上面的代码只是试图读入文本文件。但是,它将 null 返回到描述符,这显然会导致进一步的错误。

inputStream = new FileReader(descriptor.getFileDescriptor());

这是初始化输入流的行,用于解析我在此范围之外创建的循环中的文本文件。

所以我的问题是如何修复 txt 文件无法正确打开且明显被压缩的问题。

如果我在发布时出现任何错误,请告诉我,以便我更正错误以获得最佳建议!

干杯!

【问题讨论】:

  • 你把这个 level1.txt 文件放在哪里了?
  • 您好@wtsang02。我已将文件放在资产文件夹中。所以对我个人而言,它会是 AndroidDevelopment/crisis/assets。

标签: java android


【解决方案1】:

所以我的问题是如何修复 txt 文件无法正确打开且明显被压缩的问题。

不要调用openFd(),而是调用open(),直接获取InputStream,并将FileReader替换为InputStreamReader(如果你真的想要Reader接口)。

【讨论】:

  • 这似乎删除了我的错误消息。非常感谢。我现在没有得到预期的结果,但这是稍后清除的另一个障碍。
  • 我在内容提供者中使用 AssetsFileDiscriptor 我必须返回这个 AssetFileDiscriptor 我无法返回 InputStream ,所以现在我该怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-07
相关资源
最近更新 更多