0

我正在尝试为我正在制作的 Android 应用程序打开一个文件。我在常规 Java 项目上测试了打开此文件的代码,并且可以正常打开。但是,当我在 Android Java 项目中使用此代码时,出现 java.io.FileNotFoundException 错误。

File file = new File ("list.plist");

现在 list.plist 文件位于项目的父目录中。该文件将包含在应用程序中,因为它是唯一将使用的文件。

我想我已经习惯了 Xcode,我可以将文件放在项目中的任何位置,并且可以毫无问题地访问它。

我应该如何构建这条路径?

谢谢 :-)

我用过这个,但它也没有用。

File file = new File(context.getFilesDir().getAbsoluteFile(), "list.plist");

4

4 回答 4

0

您需要将此文件放在资产目录中,而不是放在父文件夹中。父文件夹中的任何文件都不需要与应用程序一起打包。此外,您在手机上的文件结构与您在 eclipse 中看到的不同。

于 2012-07-24T02:06:09.193 回答
0

您应该使用“res/raw”或“assets”目录在您的 Android 项目中包含原始文件。见:http: //developer.android.com/guide/topics/data/data-storage.html

于 2012-07-24T02:06:10.290 回答
0

首先,您需要确保您使用的文件被打包在您的应用程序中 - 例如在资产目录中。

其次,Android会根据扩展名自动压缩plist文件。作为一种解决方法,将扩展名更改为 Android 不会压缩的内容。这些扩展包括:

".jpg", ".jpeg", ".png", ".gif",
".wav", ".mp2", ".mp3", ".ogg", ".aac",
".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet",
".rtttl", ".imy", ".xmf", ".mp4", ".m4a",
".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2",
".amr", ".awb", ".wma", ".wmv"

(有关完整文章,请参阅deal-with-asset-compression-in-android-apps

于 2012-07-24T02:57:41.777 回答
0

我将 list.plist 添加到 assets 文件夹并将其重命名为 list.mp3 以避免压缩问题。

AssetManager assetManager = getAssets();
InputStream inputStream = assetManager.open("list.mp3");

这成功地打开了文件,没有问题,现在允许我解析 inputStream。

感谢菲尔给了我正确的方向。

于 2012-07-24T16:36:56.113 回答