Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法打开FileInputStream_Android_File_Fileinputstream - Fatal编程技术网

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/