Android 无法打开FileInputStream
使用Android 无法打开FileInputStream,android,file,fileinputstream,Android,File,Fileinputstream,使用FileInputStream对象读取文件时遇到问题。 我想打开的文件已经存在(我用同一个应用程序创建了它,我可以通过设备上的文件管理器看到它)。 这就是方法: public String readFile(String name) { try { FileInputStream fis; String res = "", read; File tmp = new File(directory, name); fis =
FileInputStream
对象读取文件时遇到问题。
我想打开的文件已经存在(我用同一个应用程序创建了它,我可以通过设备上的文件管理器看到它)。
这就是方法:
public String readFile(String name) {
try {
FileInputStream fis;
String res = "", read;
File tmp = new File(directory, name);
fis = new FileInputStream(tmp);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader buffered_reader = new BufferedReader(isr);
read = buffered_reader.readLine();
while (read != null) {
res = res + read;
Log.i("AAAAAAAAAAAAAAAAA", "letto"+read);
read = buffered_reader.readLine();
}
isr.close();
fis.close();
return res;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.i("AAAAAAAAAA", "Letto un cazzo");
return null;
}
其中,目录变量声明为:
private static File directory;
它存储应用程序目录的静态对象文件。
问题在哪里
Logcat说
打开失败的eNote(没有这样的文件或目录)
在行
fis = new FileInputStream(tmp);
打开失败的eNote(没有这样的文件或目录)
我的建议是把它修好
FileInputStream fis;
File tmp = new File(directory, name);
if (tmp.exists() && tmp.isFile()) {
fis = new FileInputStream(tmp);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader buffered_reader = new BufferedReader(isr);
// next lines ...
}
else {
// error
}
因此,没有办法让它发挥作用。您需要传递正确的文件路径
,否则它将无法工作。还要检查您是否有读写权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
文件输入流openFileInput(字符串名称文件)
打开与此上下文的应用程序包关联的私有文件进行读取
从Api。我已经用过了,没有问题。你的文件名/位置/扩展名可以吗?当然,同一个类对写文件的函数使用相同的变量添加了必要的权限?权限可以,在清单上,我添加了android.permission.WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE??在logcat上显示路径为/STORAGE/emulated/0/Appname/filename。我不知道模拟了什么/0/