Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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/0/laravel/11.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
Java 创建新文件时出现奇怪的问题_Java_Android_Android Activity - Fatal编程技术网

Java 创建新文件时出现奇怪的问题

Java 创建新文件时出现奇怪的问题,java,android,android-activity,Java,Android,Android Activity,我有以下两种方法,用于读取和写入文件: /* Write content to a file */ private void writeToFile(ArrayList<String> list) { @SuppressWarnings("unused") File file = new File("jokesBody1.bjk"); FileOutputStream fos; if(list != null){

我有以下两种方法,用于读取和写入文件:

/* Write content to a file */
    private void writeToFile(ArrayList<String> list) {
        @SuppressWarnings("unused")
        File file = new File("jokesBody1.bjk");
        FileOutputStream fos;
        if(list != null){
        try {           
                fos = openFileOutput("jokesBody1.bjk",Context.MODE_PRIVATE);
                ObjectOutputStream out = new ObjectOutputStream(fos);
                out.writeObject(list);
                out.close();
        } catch (FileNotFoundException e) {
                e.printStackTrace();
        } catch (IOException e) {
                e.printStackTrace(); 
        }
        }else{
            try {
                fos = openFileOutput("jokesBody1.bjk",Context.MODE_PRIVATE);
                ObjectOutputStream out = new ObjectOutputStream(fos);
                out.writeObject("");
                out.close();
        } catch (FileNotFoundException e) {
                e.printStackTrace();
        } catch (IOException e) {
                e.printStackTrace(); 
        }
        }
    }

    /* Read file's content */
    private ArrayList<String> readFromFile() {
        File file = new File("jokesBody1.bjk");
        ArrayList<String> list = new ArrayList<String>();
        try {
            ObjectInputStream ois = new ObjectInputStream( new FileInputStream( file ) );
            try {
                list = (ArrayList)ois.readObject();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            ois.close();
            } catch (IOException e) {
            Log.e("log activity", "Can not read file: " + e.toString());
        }

        return list;
    }
好的,它清楚地表明文件不在那里,但是,这段代码不应该创建它吗:

File file = new File("jokesBody1.bjk");
为什么我会犯这个错误?我知道我遗漏了一些小东西——可能是创建文件的一段代码(我不确定),但作为初学者,我无法发现这个问题

File file = new File("jokesBody1.bjk");
只创建指向该路径的文件对象,而不创建实际文件

使用

来实际创建文件

好的,它清楚地表明文件不在那里,但是,这段代码不应该创建它吗:

File file = new File("jokesBody1.bjk");
实际上,不是。它只创建一个文件对象,然后java假定该文件存在。

File File File=new File(“jokesBody1.bjk”)我认为这不一定会在文件系统上生成一个新文件,而只是在应用程序中生成一个文件对象。我想您需要方法
createnewfile()
。你可以读到它。
file.createNewFile();