【发布时间】:2016-01-10 18:29:39
【问题描述】:
我有一个位于 /res/introduced.xml 的文件。我知道我可以通过两种方式访问它:
1) R.introduced 资源
2) 一些绝对/相对 URI
我正在尝试创建一个 File 对象,以便将其传递给特定的类。我该怎么做?
【问题讨论】:
标签: android file resources uri
我有一个位于 /res/introduced.xml 的文件。我知道我可以通过两种方式访问它:
1) R.introduced 资源
2) 一些绝对/相对 URI
我正在尝试创建一个 File 对象,以便将其传递给特定的类。我该怎么做?
【问题讨论】:
标签: android file resources uri
这就是我最终做的:
try{
InputStream inputStream = getResources().openRawResource(R.raw.some_file);
File tempFile = File.createTempFile("pre", "suf");
copyFile(inputStream, new FileOutputStream(tempFile));
// Now some_file is tempFile .. do what you like
} catch (IOException e) {
throw new RuntimeException("Can't create temp file ", e);
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}
【讨论】:
一些绝对/相对 URI
Android 中很少有东西支持这一点。
我正在尝试创建一个 File 对象,以便将其传递给特定的类。我该怎么做?
你没有。资源不作为文件存在于 Android 设备的文件系统中。将类修改为不需要文件,而是使用资源 ID 或 XmlResourceParser。
【讨论】:
src/main/assets/),然后编写一些代码将资产复制到internal storage 上的文件中。生成的文件是文件系统上的一个文件,您可以使用File 指向它。