我知道在StackExchange上已经有很多关于这方面的问题,但我已经尝试了一些建议,但我似乎无法为我找到合适的解决方案。
我想做什么: 我将文件test.txt复制到文件夹" test" (使用我的电脑在我的手机上正常的外部存储,没有额外的SD卡)现在我想再次读取文件的内容,将所有内容复制到字符串中并用它做更多的事情。
在我的电脑上,文件的路径是: 电脑\三星Galaxy S7 \ Phone \ test \ test.txt 在电话上它是: 我的文件\设备存储\ test \ test.txt
我的代码:
String root = Environment.getExternalStorageDirectory().getAbsolutePath().toString();
String path = root + File.separator + "test" + File.separator + "test.txt";
File f = new File(path);
StringBuilder sb = new StringBuilder();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(f));
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append('\n');
}
text = sb.toString();
br.close();
} catch (IOException e) {
return path;
}
问题是它总是进入" catch" part然后返回" Storage / emulated / 0 / test / test.txt",这显然不是正确的路径(否则它应该找到文件)。
如果我使用
File f = Environment.getExternalStoragePublicDirectory("test" + File.separator + "test.txt");
它会产生同样的结果。
我错过了什么/我必须使用什么,所以它找到了文件?