Java文件创建案例怎么编写

wen java案例 26

本文目录导读:

Java文件创建案例怎么编写

  1. 使用 File.createNewFile() 方法
  2. 使用 Files.write() 方法(Java 7+)
  3. 使用 FileOutputStream
  4. 创建文件到指定目录
  5. 带异常处理的完整示例
  6. 运行结果示例
  7. 注意事项

我来为您介绍Java中创建文件的几种常见方法及完整示例。

使用 File.createNewFile() 方法

import java.io.File;
import java.io.IOException;
public class CreateFileExample1 {
    public static void main(String[] args) {
        try {
            // 创建文件对象
            File file = new File("example.txt");
            // 检查文件是否已存在
            if (file.exists()) {
                System.out.println("文件已存在: " + file.getName());
            } else {
                // 创建新文件
                boolean created = file.createNewFile();
                if (created) {
                    System.out.println("文件创建成功: " + file.getName());
                    System.out.println("文件路径: " + file.getAbsolutePath());
                } else {
                    System.out.println("文件创建失败");
                }
            }
        } catch (IOException e) {
            System.out.println("创建文件时发生错误");
            e.printStackTrace();
        }
    }
}

使用 Files.write() 方法(Java 7+)

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class CreateFileExample2 {
    public static void main(String[] args) {
        try {
            // 指定文件路径
            Path filePath = Paths.get("data.txt");
            // 写入内容并创建文件
            List<String> lines = Arrays.asList("Hello World!", "这是第二行", "这是第三行");
            Files.write(filePath, lines);
            System.out.println("文件创建并写入成功: " + filePath.toAbsolutePath());
        } catch (IOException e) {
            System.out.println("操作失败");
            e.printStackTrace();
        }
    }
}

使用 FileOutputStream

import java.io.FileOutputStream;
import java.io.IOException;
public class CreateFileExample3 {
    public static void main(String[] args) {
        String fileName = "output.txt";
        String content = "这是文件内容\n这是第二行内容";
        try (FileOutputStream fos = new FileOutputStream(fileName)) {
            // 将字符串转换为字节数组并写入
            byte[] contentBytes = content.getBytes();
            fos.write(contentBytes);
            System.out.println("文件创建并写入成功: " + fileName);
        } catch (IOException e) {
            System.out.println("文件操作失败");
            e.printStackTrace();
        }
    }
}

创建文件到指定目录

import java.io.File;
import java.io.IOException;
public class CreateFileInDirectory {
    public static void main(String[] args) {
        String directoryPath = "myFolder";
        String fileName = "myFile.txt";
        try {
            // 创建目录
            File directory = new File(directoryPath);
            if (!directory.exists()) {
                boolean dirCreated = directory.mkdir();
                if (dirCreated) {
                    System.out.println("目录创建成功: " + directoryPath);
                } else {
                    System.out.println("目录创建失败");
                    return;
                }
            }
            // 在指定目录中创建文件
            File file = new File(directory, fileName);
            if (file.createNewFile()) {
                System.out.println("文件创建成功: " + file.getAbsolutePath());
            } else {
                System.out.println("文件已存在");
            }
        } catch (IOException e) {
            System.out.println("操作失败");
            e.printStackTrace();
        }
    }
}

带异常处理的完整示例

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileCreator {
    public static void main(String[] args) {
        FileCreator creator = new FileCreator();
        // 测试不同场景
        creator.createFile("test1.txt");
        creator.createFileWithContent("test2.txt", "这是测试内容");
        creator.createFileInDirectory("testDir", "test3.txt");
        // 清理测试文件
        creator.cleanUp();
    }
    // 方法1:创建空文件
    public boolean createFile(String fileName) {
        try {
            File file = new File(fileName);
            if (file.createNewFile()) {
                System.out.println("✅ 文件创建成功: " + fileName);
                return true;
            } else {
                System.out.println("⚠️ 文件已存在: " + fileName);
                return false;
            }
        } catch (IOException e) {
            System.err.println("❌ 创建文件失败: " + e.getMessage());
            return false;
        }
    }
    // 方法2:创建文件并写入内容
    public boolean createFileWithContent(String fileName, String content) {
        try {
            Path filePath = Paths.get(fileName);
            Files.write(filePath, content.getBytes());
            System.out.println("✅ 文件创建并写入完成: " + fileName);
            return true;
        } catch (IOException e) {
            System.err.println("❌ 创建文件失败: " + e.getMessage());
            return false;
        }
    }
    // 方法3:在指定目录中创建文件
    public boolean createFileInDirectory(String dirName, String fileName) {
        try {
            // 创建目录
            File directory = new File(dirName);
            if (!directory.exists()) {
                directory.mkdirs();
            }
            // 创建文件
            File file = new File(directory, fileName);
            if (file.createNewFile()) {
                System.out.println("✅ 文件创建成功: " + file.getAbsolutePath());
                return true;
            } else {
                System.out.println("⚠️ 文件已存在: " + file.getAbsolutePath());
                return false;
            }
        } catch (IOException e) {
            System.err.println("❌ 创建文件失败: " + e.getMessage());
            return false;
        }
    }
    // 清理测试文件
    public void cleanUp() {
        // 删除测试文件
        new File("test1.txt").delete();
        new File("test2.txt").delete();
        new File("testDir/test3.txt").delete();
        new File("testDir").delete();
        System.out.println("🧹 清理完成");
    }
}

运行结果示例

✅ 文件创建成功: test1.txt
✅ 文件创建并写入完成: test2.txt
✅ 文件创建成功: /Users/username/testDir/test3.txt
🧹 清理完成

注意事项

  1. 文件权限:确保程序有文件的写入权限
  2. 文件已存在createNewFile() 在文件已存在时会返回 false
  3. 异常处理:务必处理 IOException
  4. 相对路径 vs 绝对路径:相对路径相对于当前工作目录
  5. 资源释放:使用 try-with-resources 自动关闭资源

选择哪种方法取决于您的具体需求:

  • 仅创建空文件:使用 File.createNewFile()
  • 创建并写入内容:使用 Files.write()FileOutputStream
  • 需要在指定目录创建:先创建目录再创建文件

抱歉,评论功能暂时关闭!