当前位置:首页 > Java

java如何存csv

2026-03-23 05:30:04Java

使用 Java 写入 CSV 文件

Java 提供了多种方式将数据写入 CSV 文件,以下是几种常见的方法:

使用 FileWriter 和手动拼接字符串

通过 FileWriter 直接写入字符串,手动处理逗号分隔和换行符:

import java.io.FileWriter;
import java.io.IOException;

public class CsvWriterExample {
    public static void main(String[] args) {
        String csvFile = "output.csv";
        try (FileWriter writer = new FileWriter(csvFile)) {
            writer.append("Name,Age,Email\n");
            writer.append("John,30,john@example.com\n");
            writer.append("Jane,25,jane@example.com\n");
            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 OpenCSV 库

OpenCSV 是一个流行的第三方库,简化了 CSV 文件的读写操作:

  1. 添加依赖(Maven):

    <dependency>
     <groupId>com.opencsv</groupId>
     <artifactId>opencsv</artifactId>
     <version>5.7.1</version>
    </dependency>
  2. 写入 CSV 文件:

    
    import com.opencsv.CSVWriter;
    import java.io.FileWriter;
    import java.io.IOException;

public class OpenCsvExample { public static void main(String[] args) { String csvFile = "output.csv"; try (CSVWriter writer = new CSVWriter(new FileWriter(csvFile))) { String[] header = {"Name", "Age", "Email"}; writer.writeNext(header);

        String[] record1 = {"John", "30", "john@example.com"};
        String[] record2 = {"Jane", "25", "jane@example.com"};
        writer.writeNext(record1);
        writer.writeNext(record2);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}


#### 使用 Apache Commons CSV

Apache Commons CSV 是另一个强大的 CSV 处理库:

1. 添加依赖(Maven):
```xml
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.9.0</version>
</dependency>
  1. 写入 CSV 文件:
    
    import org.apache.commons.csv.CSVFormat;
    import org.apache.commons.csv.CSVPrinter;
    import java.io.FileWriter;
    import java.io.IOException;

public class CommonsCsvExample { public static void main(String[] args) { String csvFile = "output.csv"; try (FileWriter writer = new FileWriter(csvFile); CSVPrinter printer = new CSVPrinter(writer, CSVFormat.DEFAULT .withHeader("Name", "Age", "Email"))) { printer.printRecord("John", 30, "john@example.com"); printer.printRecord("Jane", 25, "jane@example.com"); } catch (IOException e) { e.printStackTrace(); } } }

java如何存csv


#### 使用 Java 8 的 Stream API

结合 Java 8 的 Stream API 和 `Files` 类可以简洁地写入 CSV:

```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;

public class Java8CsvWriter {
    public static void main(String[] args) {
        String csvFile = "output.csv";
        List<String> lines = Arrays.asList(
                "Name,Age,Email",
                "John,30,john@example.com",
                "Jane,25,jane@example.com"
        );
        try {
            Files.write(Paths.get(csvFile), lines);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注意事项

  • 处理特殊字符:如果数据包含逗号或换行符,需要使用引号包裹字段。
  • 性能考虑:对于大数据量,建议使用缓冲流(如 BufferedWriter)或专门的库(如 OpenCSV)。
  • 编码问题:确保文件编码一致(通常使用 UTF-8)。
  • 依赖管理:如果使用第三方库,确保正确添加依赖项。

标签: javacsv
分享给朋友:

相关文章

如何学java

如何学java

学习Java的基础知识 Java是一门面向对象的编程语言,掌握基础语法是入门的关键。需要了解变量、数据类型、运算符、控制结构(如if-else、for循环、while循环)、数组等概念。可以通过官方文…

java如何取绝对值

java如何取绝对值

取绝对值的方法 在Java中,取绝对值可以通过以下几种方式实现: 使用Math.abs()方法 Math.abs()是Java中最常用的取绝对值方法,适用于多种数据类型: int abso…

java面试官如何面试别人

java面试官如何面试别人

考察基础知识 从Java核心概念入手,包括面向对象特性(封装、继承、多态)、集合框架(ArrayList vs LinkedList、HashMap实现原理)、异常处理机制、多线程(线程池、锁机制)等…

php 实现 java md5

php 实现 java md5

在 PHP 中实现与 Java 相同的 MD5 哈希算法,关键在于确保编码和输出格式的一致性。以下是具体实现方法和注意事项: 确保字符串编码一致 Java 的 String.getBytes() 默…

如何查看java版本

如何查看java版本

查看Java版本的命令行方法 在终端或命令提示符中运行以下命令,可以快速查看已安装的Java版本: java -version 输出示例: java version "17.0.1" 20…

java如何创建文件

java如何创建文件

创建文件的方法 在Java中创建文件可以通过多种方式实现,以下是常见的几种方法: 使用File.createNewFile()方法 这种方法适用于简单的文件创建需求。需要先创建一个File对象,然…