前言
有一些项目中需要支持导出csv文件,尤其是一些数据统计、运营分析等工作。
Java 中提供了大量的工具包来操作 execel 、csv 等文件,本文采用 opencsv 来对 csv 文件进行读写;execel 可以使用poi来进行读写。
pom 依赖
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>3.3</version>
</dependency>
代码示例
public class FileReader {
private static final String CSVPATH = "/Users/apple/Desktop/monitor/example.csv";
public static final char UNDERLINE = '_';
public static void main(String[] args) {
readCsv(CSVPATH);
}
/**
* 读取数据
*/
public static void readCsv(String path) {
File file = new File(path);
try (FileInputStream fileIn = new FileInputStream(file);
DataInputStream dataIn = new DataInputStream(fileIn);
InputStreamReader in = new InputStreamReader(dataIn, "UTF-8");) {
CSVReader csvReader = new CSVReader(in, CSVParser.DEFAULT_SEPARATOR, CSVParser.DEFAULT_QUOTE_CHARACTER,
CSVParser.DEFAULT_ESCAPE_CHARACTER, 1);
String[] strs;
while ((strs = csvReader.readNext()) != null) {
System.out.println(Arrays.toString(strs));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 写入 csv
*
* @param path
* @param strs
* @throws IOException
*/
public static void write(String path, String[] strs) throws IOException {
File resultPath = new File(path);
Writer writer = new FileWriter(resultPath);
CSVWriter csvWriter = new CSVWriter(writer, ',');
csvWriter.writeNext(strs);
csvWriter.close();
}
}