Android:从资源文件加载java.io.file

时间:2016-05-07 02:33:56

标签: java android resources

我想在我的Android应用程序中使用Java库。此库的类构造函数和方法通常采用文件路径(配置文件,字典等),然后根据给定路径构建java.io.file实例。

在我的Android应用程序中,我想将这些文件存储在'res'文件夹中(可能在res / raw中)。问题是我必须将这些文件的路径提供给库的方法。

我可以使用getResources()轻松获取InputStream,但我的库无法直接使用它。我必须通过所有方法将路径作为参数,用InputStream替换它并修改内容以处理InputStreams而不是Files。这代表了相当多的工作,我更愿意不经修改就使用该库,并使其易于升级。

即使使用基于资源文件的java.io.file也不是一个好习惯,它有可能吗?如果你能指明一种方法,这肯定会有所帮助。

谢谢。

1 个答案:

答案 0 :(得分:1)

如果库使用java.io.File,那么我认为没有办法在Java中实现这一点(更不用说Java的Android子集)了。有可能通过环回文件系统解决问题,但这取决于您的Android设备的内核等。

请参阅:

  • enter image description here

如果库使用java.nio.file.Path,则可以实现将资源映射到默认文件系统名称空间的自定义FileSystemProvider

请注意,这适用于常规Java 7.需要相关NIO库的后端才能使其在Android上运行。我又找了一个可行的后端,但找不到一个。

请参阅:

还有另一种“笨重”的做法。让您的应用程序将相关资源复制到可通过File

访问的文件