这似乎不会创建文件或文件夹。为什么呢?
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){}
}
}
但是,该目录似乎有一个奇怪的无法使用的图标。
如何创建目录。 什么是其他简单的方法来创建文件和文件夹。
答案 0 :(得分:2)
令人惊讶的是,File
类并不代表文件。它实际上代表了一个文件的路径名......可能存在也可能不存在。
要在Java中创建文件,您需要打开它以进行输出; e.g。
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
打开以进行追加。
如果您想创建一个文件而不向其写入任何数据,您也可以这样做:
File text1 = new File("C:/text1.txt");
text1.createNewFile();
但是,如果文件尚不存在,那只会创建一个新文件。
要使用Java创建目录,请使用File.mkdir()
或File.mkdirs()
方法。
<强>更新强>
您评论道:
我试过
File dir = new File("C:/dir1").mkdir();
它说不兼容的类型。
这是对的。 mkdir()
方法返回boolean
以表示它是否创建了目录。你需要写的是这样的:
File dir = new File("C:/dir1");
if (dir.mkdir()) {
System.out.println("I created it");
}
在使用您不熟悉的方法或类之前,请务必阅读JAVADOC!
您需要了解的更多内容:
解决确保文件关闭问题的最佳方法是执行以下操作:
try (FileOutputStream os = new FileOutputStream(text1)) {
// now write to it
}
当块退出时,流os
将自动关闭。
抓住Exception
通常是“不好的做法”。捕获Exception
并在处理程序中不执行任何操作总是“不良做法”。这种隐藏了错误的证据,使您的代码难以预测,难以调试。
答案 1 :(得分:0)
如果您要使用File
创建目录,则需要:
new File("C:/dir").mkdirs();
答案 2 :(得分:0)
要创建目录,您可以使用:
if(!text1.exists()){
text1.mkdir();
}
并用于创建文件使用:
if(!text1.exists()){
try {
text1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}