ZetCode

在 Java 中创建文件

最后修改于 2024 年 1 月 27 日

在本 Java 创建文件教程中,我们将展示如何在 Java 中创建文件。我们使用内置类,包括 FileFileOutputStreamFiles 来创建文件。我们还使用了两个第三方库:Apache Commons IO 和 Google Guava。

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

本教程展示了在 Java 中创建文件的五种方法。这些例子创建的是空文件。

Java 使用 File 创建文件

如果具有此名称的文件尚不存在,则 FilecreateNewFile 方法会创建一个由路径名命名的新空文件。

JavaCreateFileEx.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;如果指定的文件已存在,则返回 false。

Java 使用 FileOutputStream 创建文件

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

JavaCreateFileEx2.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
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 创建一个新的空文件。

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

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

Files.createFile(path);

使用 Files.createFile 创建新文件。

} catch (FileAlreadyExistsException ex) {

如果文件已存在,则会抛出 FileAlreadyExistsException

Java 使用 Apache Commons IO 创建文件

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

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

对于这个项目,我们需要 commons-io 依赖。

JavaCreateFileEx4.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 方法创建新文件。

Java 使用 Google Guava 创建文件

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

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

对于这个项目,我们需要 guava 依赖。

JavaCreateFileEx5.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 中创建文件的方法。我们使用了内置工具和第三方库。

作者

我叫 Jan Bodnar,是一位充满热情的程序员,拥有丰富的编程经验。 自 2007 年以来,我一直在撰写编程文章。 迄今为止,我撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出所有Java教程