我有一个方法,希望其中一个输入变量是java.io.File类型,但我得到的只是InputStream.另外,我无法更改方法的签名.
如何将InputStream转换为File类型,而不实际将文件写入文件系统?
在以下发布的代码中我在android中"在这个语言级别不支持尝试使用资源"的问题,我试图将语言设置为7但是它仍然不断给我相同的示例加上它一直给我选项改为语言7.
public String ReadFile(String fileName) {
try (BufferedReader br = new BufferedReader(new FileReader(fileName+".txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
return everything;
} catch (FileNotFoundException ex) {
Logger.getLogger(SaveNLoadRank.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(SaveNLoadRank.class.getName()).log(Level.SEVERE, null, ex);
}
return "1";
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Android 4.4的存储访问框架并打开文件选择器.
一切正常,除非从Google云端硬盘中选择文件,我只能弄清楚如何将其作为输入流打开,但我想获得一个java File对象.
返回的内容uri看起来像这样:content://com.google.android.apps.docs.storage/document/acc%3D4%3Bdoc%3D2279
其他类似的问题,但没有一个工作解决方案,允许我获取文件名,文件大小和内容:
我还研究了Paul Burke的FileChooser(https://github.com/iPaulPro/aFileChooser),这是该问题列表中最常见的问题.
如何从该内容获取文件?
我目前的解决方法是从输入流写出一个临时文件.
谢谢!