有没有办法在Android手机上加载文件?

时间:2015-05-08 04:50:57

标签: java android inputstream epub

我制作了一个程序,使用递归扫描手机,找到位于"/storage/emulated/0/"下的所有epub文件。这有效,我可以加载找到的文件并将其转换为InputStream,但我无法使用this API从中获取数据。但是,使用相同的代码从assets文件夹加载epub文件。

用于将文件转换为InputStream的代码如下:

//Example location    
bookLocation = "/storage/emulated/0/Downloads/book.epub"
AssetManager assetManager = getAssets();

//DOES NOT WORK
InputStream bookStream = new ByteArrayInputStream(bookLocation.getBytes("UTF-8"));

//WORKS
InputStream bookStream = assetManager.open("book.epub");

1 个答案:

答案 0 :(得分:0)

您将bookLocation字符串包装在ByteArrayInputStream中,该字符串会在从

读取时为您提供字符串

您真正想做的是以下列方式在filePath上打开FileInputStream

new FileInputStream(bookLocation);

将其添加到您的代码中

//Example location    
bookLocation = "/storage/emulated/0/Downloads/book.epub"
setManager assetManager = getAssets();

//DOES NOT WORK
InputStream bookStream = new FileInputStream(bookLocation);

//WORKS
InputStream bookStream = assetManager.open("book.epub");