0

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

import java.io.File;

public class DeleteEvidence {

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

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

4

6 回答 6

5

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

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

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

要在您的硬盘中创建一个文件并向其中写入一些数据,您可以使用,例如,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写入它的所有字节写入磁盘上的基础文件。

然后,我创建了一个这样的实例DataOutputStreamFileOutputStream这样,我们可以编写比字节和字节数组更复杂的数据类型(这是您FileOutputStream直接使用的唯一可能性)。

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

另一种可能性是使用,这将为您提供一个可用于编写文本(非二进制)文件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.");
    }
  }
}

在这里,您可以file.txt在文本编辑器上打开文件并阅读写入其中的消息。

于 2013-06-21T06:06:30.257 回答
2
File evidence = new File(path);
evidence.mkdirs(); 
evidence.createNewFile();
于 2013-06-21T06:07:18.803 回答
0

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

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

  1. File向文件写入内容(抽象对象的引用)
  2. 打电话File#createNewFile

您也可以使用创建临时文件,File#createTempFile但我认为这不是您想要实现的目标。

于 2013-06-21T06:08:47.153 回答
0

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

 FileOutputStream fo = new FileOutputStream(new File(oFileName));
 fo.write("test".getBytes());
 fo.close();
于 2013-06-21T06:10:53.787 回答
0

这只是您使用此对象创建文件对象,您需要调用一种方法,即 createFile() 方法。

所以使用evidence.createNewFile(); 如果您只是创建文件。否则,如果您想在任何特定位置创建文件,请指定您的文件名,即 File evidence=new File("path"); 在这种情况下,如果您指定任何directoty

于 2013-06-21T06:12:23.870 回答
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();
于 2013-06-21T06:13:25.787 回答