这似乎没有创建文件或文件夹。为什么?
import java.io.*;
public class file1
{
public static void main(String[] args)
{
File text1 = new File("C:/text1.txt");
File dir1 = new File("C:/dir");
}
下面这个确实创建了一个文件。
import java.io.*;
public class file3
{
public static void main(String[] args)
{
try
{
FileWriter text1 = new FileWriter("C:/text.txt");
FileWriter dir = new FileWriter("C:/dir");
}
catch(Exception e){}
}
}
但是,该目录似乎有一个奇怪的无法使用的图标。
我可以做什么来创建目录。 还有哪些其他简单的方法来创建文件和文件夹。
最佳答案
令人惊讶的是,File
类并不代表文件。它实际上代表一个文件的路径名......可能存在也可能不存在。
要在Java中创建文件,需要打开它进行输出;例如
File text1 = new File("C:/text1.txt");
FileOutputStream os = new FileOutputStream(text1); // The file is created
// here ... if it doesn't
// exist already.
// then write to the file and close it.
或者你可以这样做 - new FileOutputStream("C:/text1.txt")
。在这两种情况下,现有文件都将被截断...除非您使用 FileOutputStream
以及一个表示打开以进行追加的 boolean 参数。
如果您想创建一个文件而不向其中写入任何数据,您也可以这样做:
File text1 = new File("C:/text1.txt");
text1.createNewFile();
但是,如果文件尚不存在,则只会创建一个新文件。
要在 Java 中创建目录,请使用 File.mkdir()
或 File.mkdirs()
方法。
更新
您评论过:
I tried
File dir = new File("C:/dir1").mkdir();
it says incompatible types.
没错。 mkdir()
方法返回一个 boolean
来表明它是否创建了目录。你需要写的是这样的:
File dir = new File("C:/dir1");
if (dir.mkdir()) {
System.out.println("I created it");
}
在使用您不熟悉的方法或类之前,请务必阅读 JAVADOCS!
您还需要了解一些事情:
处理确保文件关闭的问题的最佳方法是执行以下操作:
try (FileOutputStream os = new FileOutputStream(text1)) { // now write to it }
当 block 退出时,流
os
将自动关闭。捕获
异常
通常是“不好的做法”。捕获异常
并且在处理程序中不执行任何操作总是“不好的做法”。这种隐藏了错误的证据,并使您的代码不可预测且难以调试。
关于java - 创建文件的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21020424/