# 用 Java 创建文件

原文：http://zetcode.com/java/createfile/

在 Java 创建文件教程中，我们展示了如何在 Java 中创建文件。 我们使用内置类创建文件，包括`File`，`FileOutputStream`和`Files`。 我们还使用两个第三方库：Apache Commons IO 和 Google Guava。

计算机文件是用于在计算机存储设备中离散记录数据的计算机资源。

这些教程显示了用 Java 创建文件的五种方法。 这些示例创建空文件。

## Java 用`File`创建文件

如果尚不存在具有该名称的文件，则`File`的`createNewFile()`方法将创建一个新的空文件，其名称为路径名。

`JavaCreateFileEx.java`

```java
package com.zetcode;

import java.io.File;
import java.io.IOException;

public class JavaCreateFileEx {

    public static void main(String[] args) throws IOException {

        File file = new File("src/main/resources/myfile.txt");

        if (file.createNewFile()) {

            System.out.println("File has been created.");
        } else {

            System.out.println("File already exists.");
        }
    }
}

```

如果指定的文件不存在并且已成功创建，则`createNewFile()`返回`true`；否则，返回 0。 如果命名文件已经存在，则返回`false`。

## Java 使用`FileOutputStream`创建文件

在第二个示例中，我们使用`FileOutputStream`创建一个新的空文件。

`JavaCreateFileEx2.java`

```java
package com.zetcode;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class JavaCreateFileEx2 {

    public static void main(String[] args) throws FileNotFoundException, IOException {

        FileOutputStream fout = null;

        try {

            fout = new FileOutputStream("src/main/resources/myfile.txt");
        } finally {

            if (fout != null) {
                fout.close();
            }
        }
    }
}

```

实例化`FileOutputStream`对象时创建文件。 如果文件已存在，则将其覆盖。

如果文件存在但为目录而不是常规文件，不存在但无法创建或由于任何其他原因而无法打开，则抛出`FileNotFoundException`。

## Java 用`Files`创建文件

Java 7 引入了`Files`，它仅包含对文件，目录或其他类型的文件进行操作的静态方法。 其`createFile()`方法创建一个新的空文件，如果该文件已存在则失败。

`JavaCreateFileEx3.java`

```java
package com.zetcode;

import java.io.IOException;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class JavaCreateFileEx3 {

    public static void main(String[] args) throws IOException {

        Path path = Paths.get("src/main/resources/myfile.txt");

        try {

            Files.createFile(path);

        } catch (FileAlreadyExistsException ex) {

            System.err.println("File already exists");
        }
    }
}

```

本示例使用`Files`创建一个新的空文件。

```java
Path path = Paths.get("src/main/resources/myfile.txt");

```

创建一个`Path`对象。 它用于在文件系统中定位文件。

```java
Files.createFile(path);

```

使用`Files.createFile()`创建新文件。

```java
} catch (FileAlreadyExistsException ex) {

```

如果文件已经存在，则抛出`FileAlreadyExistsException`。

## Java 使用 Apache Commons IO 创建文件

下一个示例使用 Apache Commons IO 库创建一个文件。

```java
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>

```

对于项目，我们需要`commons-io`依赖项。

`JavaCreateFileEx4.java`

```java
package com.zetcode;

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;

public class JavaCreateFileEx4 {

    public static void main(String[] args) throws IOException {

        FileUtils.touch(new File("src/main/resources/myfile.txt"));
    }
}

```

使用`FileUtils.touch()`方法创建新文件。

## 用 Google Guava Java 创建文件

在下面的示例中，我们使用 Google Guava 库创建一个新文件。

```java
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>23.4-jre</version>
</dependency>

```

对于项目，我们需要`guava`依赖项。

`JavaCreateFileEx5.java`

```java
package com.zetcode;

import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;

public class JavaCreateFileEx5 {

    public static void main(String[] args) throws IOException {

        Files.touch(new File("src/main/resources/myfile.txt"));
    }
}

```

使用`Files.touch()`创建新文件。 它接受`File`作为参数。

在本教程中，我们展示了几种用 Java 创建文件的方法。 我们使用了内置工具和第三方库。 您可能也对相关教程感兴趣： [Java 创建目录](/java/createdirectory/)，[用 Java 复制文件](/java/copyfile/)， [Java 文件大小](/java/filesize/)， [Java `Files.list`教程](/java/fileslist/)， [Java Unix 时间](/java/unixtime/)，[读取 Java 中的文本文件](/articles/javareadtext/)， [Apache `FileUtils`教程](/java/fileutils/)， [Java 文件教程](/java/file/)和 [Java 教程](/lang/java/)。