程序不创建文件。怎么了?

时间:2013-06-21 06:04:08

标签: java eclipse file

我尝试使用以下代码创建文件:

import java.io.File;

public class DeleteEvidence {

public static void main(String[] args) {
    File evidence = new File("cookedBooks.txt");

但是,文件cookedBooks.txt在我的计算机上的任何位置都不存在。我对此很陌生,所以我在理解其他类似问题的线程时遇到了问题。

6 个答案:

答案 0 :(得分:5)

您已成功创建了类File的实例,这与在硬盘中创建实际文件非常不同。

File类的实例用于引用磁盘上的文件。您可以将它们用于许多事情,例如:

  • 检查文件或目录是否存在;
  • 创建/删除/重命名文件或目录;和
  • 打开“streams”将数据写入文件。

要在硬盘中创建文件并向其中写入一些数据,您可以使用FileOutputStream

public class AnExample {
  public static void main(String... args) throws Throwable {
    final File file = new File("file.dat");
    try (FileOutputStream fos = new FileOutputStream(file);
         DataOutputStream out = new DataOutputStream(fos)) {
      out.writeInt(42);
    }
  }
}

这里,fos实例中的FileOutputStream,它是OutputStream,它将写入其中的所有字节写入磁盘上的基础文件。

然后,我在DataOutputStream周围创建FileOutputStream的实例:这样,我们可以编写比字节和字节数组更复杂的数据类型(这是使用{{1}的唯一可能性直接)。

最后,将四个字节的数据写入文件:四个字节代表整数FileOutputStream。请注意,如果您在文本编辑器上打开此文件,您将看到垃圾,因为上面的代码没有写入字符'4'和'2'。

另一种可能性是使用42,这将为您提供可用于编写文本(非二进制)文件的OutputStreamWriter实例:

Writer

在这里,您可以在文本编辑器上打开文件public class AnExample { public static void main(String... args) throws Throwable { final File file = new File("file.txt"); try (FileOutputStream fos = new FileOutputStream(file); OutputStreamWriter out = new OutputStreamWriter(fos, StandardCharsets.UTF_8)) { out.write("You can read this with a text editor."); } } } 并阅读写入它的消息。

答案 1 :(得分:3)

File evidence = new File(path);
evidence.mkdirs(); 
evidence.createNewFile();

答案 2 :(得分:0)

File是一个不必存在的文件的抽象概念。简单地创建File对象实际上并不创建物理对象。

你可以(至少)两种方式做到这一点。

  1. 将某些内容写入文件(由抽象File对象引用)
  2. 致电File#createNewFile
  3. 您也可以使用File#createTempFile创建临时文件,但我认为这不是您要实现的目标。

答案 3 :(得分:0)

您只创建了一个可以表示文件的对象。这只是在记忆中。如果您想访问该文件,请务必使用FileInputStreamFileOutputStream。然后它也将在驱动器上创建(如果是输出流)。

 FileOutputStream fo = new FileOutputStream(new File(oFileName));
 fo.write("test".getBytes());
 fo.close();

答案 4 :(得分:0)

这只是你通过使用这个对象创建文件对象你需要调用一个方法,即createFile()方法..

所以使用evidence.createNewFile();如果你只是创建文件。 否则,如果您想在任何特定位置创建文件,请指定您的文件名 即文件证据=新文件(“路径”); 在这种情况下,如果你指定任何directoty

答案 5 :(得分:0)

String path="abc.txt";
File file = new File(path);
if (file.createNewFile()) {
    System.out.println("File is created");
}
else {
    System.out.println("File is  already   created");
}
FileWriter fw = new FileWriter(file, true);
string ab="Hello";
fw.write(ab);
fw.write(summary);
fw.close();