Java:文件操作

82°C 05-01-2025 notbyai
最近更新于:2025-01-05 19:04:00

1. 创建文件

使用 java.io.FilecreateNewFile() 方法来创建文件。

代码示例

import java.io.File; // 导入File类
import java.io.IOException; // 导入IOException异常处理类

public class FileCreateExample {
    public static void main(String[] args) {
        try {
            // 创建File对象,表示文件路径
            File file = new File("example.txt");

            // 调用createNewFile方法创建文件
            if (file.createNewFile()) { 
                System.out.println("文件已创建: " + file.getName());
            } else {
                System.out.println("文件已存在。");
            }
        } catch (IOException e) {
            System.out.println("创建文件时发生错误。");
            e.printStackTrace(); // 打印错误堆栈信息
        }
    }
}

代码讲解

  1. import java.io.File;
    导入 File 类,用于表示文件或目录路径。
  2. import java.io.IOException;
    导入 IOException 异常类,用于处理文件创建可能出现的输入输出错误。
  3. File file = new File("example.txt");
    创建一个 File 对象,表示 example.txt 文件。如果传入绝对路径,则表示该路径下的文件。
  4. if (file.createNewFile())
    调用 createNewFile() 方法尝试创建文件。如果文件创建成功,返回 true;如果文件已存在,返回 false
  5. catch (IOException e)
    捕获 IOException 异常,可能发生的情况包括:
    • 文件路径无效。
    • 没有写入权限。
    • 文件名包含不合法字符。

2. 写入文件

使用 FileWriter 写入内容到文件。

代码示例

import java.io.FileWriter; // 导入FileWriter类
import java.io.IOException; // 导入IOException异常处理类

public class FileWriteExample {
    public static void main(String[] args) {
        try {
            // 创建FileWriter对象,表示将内容写入example.txt文件
            FileWriter writer = new FileWriter("example.txt");

            // 写入第一行内容
            writer.write("Hello, Java 文件操作示例!\n");
            // 写入第二行内容
            writer.write("这是第二行内容。\n");

            // 关闭FileWriter,确保内容写入文件
            writer.close();
            System.out.println("成功写入文件。");
        } catch (IOException e) {
            System.out.println("写入文件时发生错误。");
            e.printStackTrace(); // 打印错误堆栈信息
        }
    }
}

代码讲解

  1. FileWriter writer = new FileWriter("example.txt");
    创建 FileWriter 对象,用于将数据写入 example.txt 文件。如果文件不存在,会自动创建文件。如果文件已存在,会覆盖其内容。
  2. writer.write("Hello, Java 文件操作示例!\n");
    使用 write() 方法将文本写入文件。\n 是换行符,表示写入新的一行。
  3. writer.close();
    关闭 FileWriter,确保所有数据被成功写入文件并释放系统资源。注意: 如果不关闭文件,可能会导致数据丢失。
  4. catch (IOException e)
    捕获可能发生的 IOException,例如磁盘已满、没有写权限等。

3. 读取文件

使用 Scanner 类逐行读取文件内容。

代码示例

import java.io.File; // 导入File类
import java.io.FileNotFoundException; // 导入FileNotFoundException异常类
import java.util.Scanner; // 导入Scanner类

public class FileReadExample {
    public static void main(String[] args) {
        try {
            // 创建File对象,表示要读取的文件
            File file = new File("example.txt");

            // 创建Scanner对象,用于读取文件内容
            Scanner scanner = new Scanner(file);

            // 使用循环逐行读取文件内容
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine(); // 读取当前行
                System.out.println(line); // 打印当前行内容
            }

            // 关闭Scanner对象
            scanner.close();
        } catch (FileNotFoundException e) {
            System.out.println("读取文件时发生错误。");
            e.printStackTrace(); // 打印错误堆栈信息
        }
    }
}

代码讲解

  1. File file = new File("example.txt");
    创建 File 对象,表示需要读取的文件路径。
  2. Scanner scanner = new Scanner(file);
    创建 Scanner 对象,并将文件作为输入源。
  3. while (scanner.hasNextLine())
    循环判断是否还有下一行可以读取。
  4. String line = scanner.nextLine();
    使用 nextLine() 方法读取当前行内容,并将其保存为字符串。
  5. scanner.close();
    关闭 Scanner 对象,释放资源。
  6. catch (FileNotFoundException e)
    捕获文件未找到异常,例如文件路径错误或文件不存在。

4. 删除文件

使用 File 类的 delete() 方法删除文件。

代码示例

import java.io.File; // 导入File类

public class FileDeleteExample {
    public static void main(String[] args) {
        // 创建File对象,表示要删除的文件
        File file = new File("example.txt");

        // 调用delete()方法删除文件
        if (file.delete()) {
            System.out.println("已删除文件: " + file.getName());
        } else {
            System.out.println("删除文件失败。文件可能不存在。");
        }
    }
}

代码讲解

  1. File file = new File("example.txt");
    创建 File 对象,表示需要删除的文件。
  2. if (file.delete())
    调用 delete() 方法删除文件。返回 true 表示删除成功,false 表示删除失败。
  3. 删除失败的常见原因:
    • 文件不存在。
    • 没有权限删除该文件。
    • 文件正在被其他程序占用。

5. 文件属性操作

使用 File 类获取文件属性信息,例如文件大小、路径等。

代码示例

import java.io.File;

public class FileAttributesExample {
    public static void main(String[] args) {
        // 创建File对象,表示目标文件
        File file = new File("example.txt");

        if (file.exists()) { // 判断文件是否存在
            System.out.println("文件名: " + file.getName()); // 获取文件名
            System.out.println("文件路径: " + file.getAbsolutePath()); // 获取绝对路径
            System.out.println("文件大小: " + file.length() + " 字节"); // 获取文件大小
            System.out.println("是否为目录: " + file.isDirectory()); // 是否是目录
        } else {
            System.out.println("文件不存在。");
        }
    }
}

代码讲解

  1. if (file.exists())
    判断文件是否存在。
  2. file.getName()
    获取文件的名称,例如 example.txt
  3. file.getAbsolutePath()
    获取文件的绝对路径。
  4. file.length()
    获取文件大小(以字节为单位)。
  5. file.isDirectory()
    判断当前路径是否是一个目录。

总结

  1. 异常处理
    • 创建文件、写入文件和读取文件时,都可能会抛出异常,必须用 try-catch 处理。
    • 常见异常有 IOExceptionFileNotFoundException
  2. 资源管理
    • 打开文件(如 FileWriterScanner)后,务必关闭资源(调用 close() 方法),否则可能造成文件被锁定或资源泄漏。
  3. 路径问题
    • 文件路径可以是相对路径或绝对路径,确保路径合法性。
    • 跨平台时,尽量使用 /File.separator

评论留言

欢迎您,!您可以在这里畅言您的的观点与见解!

0 条评论