目前,我有以下代码用于保存Web存档,然后将其作为FileInputStream获取。但是,webContent中的通道保持为null并抛出FileNotFoundException:
// Save the Web Archive once loading is finished
String path = context.getFilesDir().getAbsolutePath()
+ File.separator + WEB_PREFIX + postId;
webView.saveWebArchive(path);
FileInputStream webContent = null;
try {
webContent = context.openFileInput(WEB_PREFIX + postId);
} catch (FileNotFoundException e) {
Log.d("onPageFinished()", "FileNotFoundException");
e.printStackTrace();
}
如果我尝试执行context.openFileInput(path),我会得到
09-05 23:39:42.448: E/AndroidRuntime(8399): java.lang.IllegalArgumentException: File /data/data/com.example/files/web-2189241737372651547 contains a path separator
有谁知道解决方案?该文件肯定存在,因为我将它保存在上一行。
答案 0 :(得分:4)
openFileInput()
不接受路径,如果要访问路径,则只接受文件名。
请改用:
File file = new File(this.getFilesDir().getAbsolutePath() + (WEB_PREFIX + postId));
修改强> 您需要确保从同一个地方保存和检索文件。放手一搏:
注意:我不确定您是否需要File.separator
,但请尝试使用和不使用它,看看哪个有效。
String path = context.getFilesDir().getAbsolutePath()
+ File.separator + WEB_PREFIX + postId;
webView.saveWebArchive(path);
FileInputStream webContent = null;
try {
webContent = new File(path);
} catch (FileNotFoundException e) {
Log.d("onPageFinished()", "FileNotFoundException");
e.printStackTrace();
}