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

0 java eclipse file

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

import java.io.File;

public class DeleteEvidence {

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

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

Bru*_*eis 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);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这里,fos在一个实例中FileOutputStream,它将OutputStream写入它的所有字节写入磁盘上的底层文件.

然后,我创建一个DataOutputStream围绕它的实例FileOutputStream:这样,我们可以编写比字节和字节数组更复杂的数据类型(这是您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.");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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