Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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/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
Java 文本文档正在成为文件夹_Java_File - Fatal编程技术网

Java 文本文档正在成为文件夹

Java 文本文档正在成为文件夹,java,file,Java,File,这是我的班级,我做错了什么。为什么我的文本文档会变成文件夹。请解释发生了什么以及我如何纠正它。多谢各位 public class InputOutput { public static void main(String[] args) { File file = new File("C:/Users/CrypticDev/Desktop/File/Text.txt"); Scanner input = null; if (file.

这是我的班级,我做错了什么。为什么我的文本文档会变成文件夹。请解释发生了什么以及我如何纠正它。多谢各位

public class InputOutput {

    public static void main(String[] args) {

        File file = new File("C:/Users/CrypticDev/Desktop/File/Text.txt");
        Scanner input = null;


        if (file.exists()) {
            try {
                PrintWriter pw = new PrintWriter(file);
                pw.println("Some data that we have stored");
                pw.println("Another data that we stored");

                pw.close();
            } catch(FileNotFoundException e) {
                System.out.println("Error " + e.toString());
            }
        } else {
            file.mkdirs();
        }

        try {
            input = new Scanner(file);

            while(input.hasNext()) {
                System.out.println(input.nextLine());
            }
        } catch(FileNotFoundException e) {
            System.out.println("Error " + e.toString());
        } finally {
            if (input != null) {
                input.close();
            }
        }
        System.out.println(file.exists());
        System.out.println(file.length());
        System.out.println(file.canRead());
        System.out.println(file.canWrite());
        System.out.println(file.isFile());
        System.out.println(file.isDirectory());
    }
}

谢谢。上面是我的Java类。

您错误地假设
Text.txt
不是目录名

mkdirs()
创建一个目录(以及创建它所需的所有目录)。在您的示例中为“Text.txt”

请参见此处:

一个目录有一个。在里面

您可以使用
getParentFile()
获取要创建的目录,并在该目录上使用
mkdirs()

替换代码:

else {
        file.mkdirs();
     }
与:


获取更多信息。以下是文件和目录的两种表示形式之间的区别:

final File file1 = new File("H:/Test/Text.txt"); // Creates NO File/Directory
file1.mkdirs(); // Creates directory named "Text.txt" and its parent directory "H:/Test" if it doesn't exist (may fail regarding to permissions on folders).

final File file = new File("H:/Test2/Text.txt"); // Creates NO File/Directory
try {
    file.createNewFile(); // Creates file named "Text.txt" (if doesn't exist) in the folder "H:/Test2". If parents don't exist, no file is created.
} catch (IOException e) {
        e.printStackTrace();
    } 

这不是我要问的。。。我需要知道为什么它要创建一个文件夹而不是创建一个文本文档。它最终成为一个目录是由
mkdirs()
引起的<代码>新建文件()从不创建文件或目录,只创建一个实例。请解释为什么会这样做以及发生了什么。仅粘贴修复问题的代码只是部分帮助。很容易理解,mkdir方法使用文件对象名创建了一个目录,因此它创建了一个名为Test.txt的目录。在我的代码中,它首先检查文件对象在目录中是否有实际的文件,这部分代码是为了理解指定的文件对象是目录路径还是实际存在文件的路径。一旦满足该条件,另一个是从给定路径创建目录。最后是文件的内部条件。让我知道,进展如何。
final File file1 = new File("H:/Test/Text.txt"); // Creates NO File/Directory
file1.mkdirs(); // Creates directory named "Text.txt" and its parent directory "H:/Test" if it doesn't exist (may fail regarding to permissions on folders).

final File file = new File("H:/Test2/Text.txt"); // Creates NO File/Directory
try {
    file.createNewFile(); // Creates file named "Text.txt" (if doesn't exist) in the folder "H:/Test2". If parents don't exist, no file is created.
} catch (IOException e) {
        e.printStackTrace();
    }