Android - 如何下载文件,然后打开它而不将其保存到磁盘?

时间:2016-11-27 10:45:30

标签: android android-file

我想实现一个" View"我的应用程序中打开文件但实际上没有保存到磁盘的功能。 我如何下载文件,然后打开它而不保存到磁盘?

(我注意到很多其他的应用程序都不需要存储权限才能打开文件,所以他们肯定不能将它保存到磁盘上吗?)

或者我应该创建一个临时文件,然后在完成后删除它?

4 个答案:

答案 0 :(得分:0)

您无需在内部文件目录中保存文件的权限。这就是大多数应用程序的功能。如果您不想这样做,可以将文件读取到String对象,然后从那里处理它。您可以使用Apache IOUtils.copy。 这里CrossValidated是一个stackoverflow问题。您可以通过使用Google找到自己。

答案 1 :(得分:0)

您可以将文件保存在缓存方向上,如此

File outputDir = context.getCacheDir(); // context being the Activity pointer
File outputFile = File.createTempFile("prefix", "extension", outputDir);

答案 2 :(得分:0)

如果您担心保护该文件,您只需将该文件作为私人文件存储到应用程序的内部存储器中,没有应用程序可以在没有应用程序上下文的情况下打开该文件。将文件存储在内部存储器中:

File theDir = context.getDir("theDir", Context.MODE_PRIVATE); 
File fileWithinThatDir = new File(theDir, "yourFile");
FileOutputStream out = new FileOutputStream(fileWithinThatDir);

删除该文件:

new File("PathOfThatFile").delete();

答案 3 :(得分:0)

将文件下载到ByteArrayOutputStream或直接下载到字节数组。这一切都在记忆中。