Java 为什么不是';t创建的文件或为什么可以';找不到路吗?
因此,我创建以下代码来创建一个新文件。有人知道它为什么抛出异常吗 本质上,我认为它将在使用构造函数后检查文件是否存在,但它不存在,我认为它将创建它,但两者都没有发生Java 为什么不是';t创建的文件或为什么可以';找不到路吗?,java,Java,因此,我创建以下代码来创建一个新文件。有人知道它为什么抛出异常吗 本质上,我认为它将在使用构造函数后检查文件是否存在,但它不存在,我认为它将创建它,但两者都没有发生 Java Code: import java.util.Scanner; import java.lang.Integer; import java.io.*; import java.lang.*; import java.io.File; class CreateNumberFile{ public static
Java Code:
import java.util.Scanner;
import java.lang.Integer;
import java.io.*;
import java.lang.*;
import java.io.File;
class CreateNumberFile{
public static void main(String args[]){
//Ask user for filename and highest number
Scanner in = new Scanner(System.in);
System.out.println("Enter the filename");
String fileName = in.next();
System.out.println("Enter the highest number for this file");
int maxNumber = in.nextInt();
System.out.print("A file titled " + fileName+ " will be created containing a");
System.out.println(" string of numbers with numbers ranging from 0 to: " + maxNumber);
// Create a File object
File myFile = new File("home/Users/Joe/Dropbox/Programming/Java/Projects/g2.txt");
// Tests whether the file or directory denoted by this abstract
//pathname exists.
if (myFile.exists()) {
System.out.println(myFile.getAbsolutePath() +
" File already exists");
} else {
try{
//creates a new, empty file named by this pathname
myFile.createNewFile();
System.out.println(myFile.getAbsolutePath() +
" File Created Successfully");
} catch(IOException e){
System.err.println ("Caught IOException "+e.getMessage());
}
}
}//main
}//class
当我运行它时,会出现以下错误:
输出:
Caught IOException The system cannot find the path specified
我想代码会检查文件是否存在,如果不存在,我会使用构造函数来创建文件?有什么想法吗?您的路径看起来像是一条绝对路径,但您似乎忘记了开头的斜杠。如果您的文件不存在(),则可能是它的父文件也不存在(),因此您应该创建它们:
try {
// create all dirs needed to myFile's parent to exist()
myFile.getParent().mkdirs();
//creates a new, empty file named by this pathname
myFile.createNewFile();
System.out.println(myFile.getAbsolutePath() + " File Created Successfully");
} catch(IOException e) {
System.err.println ("Caught IOException "+e.getMessage());
}
此外,您在
myFile
的路径中缺少根/
。您不应该使用in.nextLine()而不是next()来获取文件名吗?这可能是由于要创建文件的路径不存在造成的。您可以使用myFile.getParentFile().exists()
进行检查,并使用类似于myFile.getParentFile().mkdirs()
的内容创建路径父目录确实存在。我真的去了Windows7中的文件夹,从地址栏复制了地址。但是,我遇到了一个“非法转义”错误,所以我将斜杠改为其他斜杠。@Bigsony那么问题是你使用了错误的斜杠?你解决了吗?发布并接受您自己的答案,如果是这样的话。难道你不需要在你的路径中添加首字母/
或C:\
?也许您可以预先设置文件://
,以使其通用。