Answers:
最好的方法是:
String path = "C:" + File.separator + "hello" + File.separator + "hi.txt";
// Use relative path for Unix systems
File f = new File(path);
f.getParentFile().mkdirs();
f.createNewFile();
new File("/a/b/test.txt")
这两个系统的工程。在Windows上,它将被写入与JVM运行所在的磁盘。
f.getParentFile().mkdirs(); f.createNewFile();
您需要在写入之前确保父目录存在。您可以通过执行此操作File#mkdirs()
。
File f = new File("C:/a/b/test.txt");
f.getParentFile().mkdirs();
// ...
随着Java 7中,你可以使用Path
,Paths
以及Files
:
import java.io.IOException;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class CreateFile {
public static void main(String[] args) throws IOException {
Path path = Paths.get("/tmp/foo/bar.txt");
Files.createDirectories(path.getParent());
try {
Files.createFile(path);
} catch (FileAlreadyExistsException e) {
System.err.println("already exists: " + e.getMessage());
}
}
}
用:
File f = new File("C:\\a\\b\\test.txt");
f.mkdirs();
f.createNewFile();
注意,我将Windows文件系统中路径的正斜杠更改为双反斜杠。这将在给定路径上创建一个空文件。
createNewFile()
当你写它是不必要的方式FileOutputStream
呢。
在指定路径中创建新文件
import java.io.File;
import java.io.IOException;
public class CreateNewFile {
public static void main(String[] args) {
try {
File file = new File("d:/sampleFile.txt");
if(file.createNewFile())
System.out.println("File creation successfull");
else
System.out.println("Error while creating File, file already exists in specified path");
}
catch(IOException io) {
io.printStackTrace();
}
}
}
程序输出:
文件创建成功
令人惊讶的是,许多答案没有给出完整的工作代码。这里是:
public static void createFile(String fullPath) throws IOException {
File file = new File(fullPath);
file.getParentFile().mkdirs();
file.createNewFile();
}
public static void main(String [] args) throws Exception {
String path = "C:/donkey/bray.txt";
createFile(path);
}
对于使用FileOutputStream,请尝试以下操作:
public class Main01{
public static void main(String[] args) throws FileNotFoundException{
FileOutputStream f = new FileOutputStream("file.txt");
PrintStream p = new PrintStream(f);
p.println("George.........");
p.println("Alain..........");
p.println("Gerard.........");
p.close();
f.close();
}
}