Java 导入导出工具类

在Java开发中,经常会遇到需要将数据导入或导出到文件中的情况,例如将数据导出为Excel文件或CSV文件,或者从Excel文件或CSV文件中导入数据。为了提高开发效率,我们可以使用导入导出工具类来简化这些操作。

什么是导入导出工具类

导入导出工具类是一个封装了常用导入导出操作的工具类,它提供了一组方法来处理数据的导入和导出。通过使用这些方法,我们可以简化文件读取和写入的过程,减少重复的代码。

导出示例

下面是一个导出功能的示例,我们将数据导出为CSV文件。

  1. 首先,我们需要定义一个数据模型,表示要导出的数据。假设我们要导出员工信息,我们可以创建一个Employee类,包含姓名、年龄和职位等属性。
public class Employee {
  private String name;
  private int age;
  private String position;

  // 省略构造方法和getter/setter方法
}
  1. 然后,我们需要实现导出功能的方法。我们可以创建一个CsvExporter类,其中包含一个静态方法export用于导出数据。
public class CsvExporter {
  public static void export(List<Employee> employees, String filePath) throws IOException {
    try (PrintWriter writer = new PrintWriter(new File(filePath))) {
      // 写入CSV文件头部
      writer.println("姓名,年龄,职位");

      // 写入数据行
      for (Employee employee : employees) {
        writer.println(employee.getName() + "," + employee.getAge() + "," + employee.getPosition());
      }
    }
  }
}
  1. 最后,我们可以在应用程序中调用导出方法来导出数据。
public class Main {
  public static void main(String[] args) {
    List<Employee> employees = Arrays.asList(
        new Employee("张三", 30, "经理"),
        new Employee("李四", 25, "职员"),
        new Employee("王五", 35, "总监")
    );

    try {
      CsvExporter.export(employees, "employees.csv");
      System.out.println("导出成功!");
    } catch (IOException e) {
      System.out.println("导出失败:" + e.getMessage());
    }
  }
}

上述示例代码中,我们首先定义了Employee类来表示员工信息,然后创建了一个CsvExporter类来实现导出功能。在export方法中,我们使用PrintWriter来写入数据到CSV文件中。最后,我们在Main类中调用CsvExporter.export方法来导出数据。

导入示例

下面是一个导入功能的示例,我们从CSV文件中导入数据。

  1. 首先,我们需要定义一个数据模型,表示要导入的数据。与导出示例中的Employee类相同。

  2. 然后,我们需要实现导入功能的方法。我们可以创建一个CsvImporter类,其中包含一个静态方法importFromCsv用于导入数据。

public class CsvImporter {
  public static List<Employee> importFromCsv(String filePath) throws IOException {
    List<Employee> employees = new ArrayList<>();

    try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
      String line;
      // 跳过CSV文件头部
      reader.readLine();

      // 逐行读取数据
      while ((line = reader.readLine()) != null) {
        String[] fields = line.split(",");
        String name = fields[0];
        int age = Integer.parseInt(fields[1]);
        String position = fields[2];

        employees.add(new Employee(name, age, position));
      }
    }

    return employees;
  }
}
  1. 最后,我们可以在应用程序中调用导入方法来导入数据。
public class Main {
  public static void main(String[] args) {
    try {
      List<Employee> employees = CsvImporter.importFromCsv("employees.csv");
      for (Employee employee : employees) {
        System.out.println(employee.getName() + " " + employee.getAge() + " " + employee.getPosition());
      }
    } catch (IOException e) {
      System.out.println("导入失败:" + e.getMessage());
    }
  }
}

上述示例代码中,我们首先定义了Employee类来表示员工信息,然后创建了一个CsvImporter类来实现导入功能。在importFromCsv方法中,