java csv工具类源码
时间: 2023-08-03 09:07:49 浏览: 170
java工具类源代码
4星 · 用户满意度95%
当然,我可以为您提供一个简单的 Java CSV 工具类的源码示例。以下是一个基本的实现,可以用于读取和写入 CSV 文件。
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class CSVUtils {
private static final char DEFAULT_SEPARATOR = ',';
private static final char DEFAULT_QUOTE = '"';
public static List<String[]> readCSV(String csvFile) {
List<String[]> lines = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
String line;
while ((line = br.readLine()) != null) {
String[] values = parseLine(line);
lines.add(values);
}
} catch (IOException e) {
e.printStackTrace();
}
return lines;
}
private static String[] parseLine(String line) {
return parseLine(line, DEFAULT_SEPARATOR, DEFAULT_QUOTE);
}
private static String[] parseLine(String line, char separator, char quoteChar) {
List<String> values = new ArrayList<>();
StringBuilder sb = new StringBuilder();
boolean inQuotes = false;
for (char c : line.toCharArray()) {
if (c == quoteChar) {
inQuotes = !inQuotes;
} else if (c == separator && !inQuotes) {
values.add(sb.toString().trim());
sb.setLength(0);
} else {
sb.append(c);
}
}
values.add(sb.toString().trim());
return values.toArray(new String[0]);
}
public static void writeCSV(String csvFile, List<String[]> lines) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(csvFile))) {
for (String[] values : lines) {
String line = joinLine(values);
bw.write(line);
bw.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static String joinLine(String[] values) {
return joinLine(values, DEFAULT_SEPARATOR, DEFAULT_QUOTE);
}
private static String joinLine(String[] values, char separator, char quoteChar) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < values.length; i++) {
if (i > 0) {
sb.append(separator);
}
sb.append(quoteChar);
sb.append(values[i]);
sb.append(quoteChar);
}
return sb.toString();
}
}
```
这个工具类提供了两个主要方法:
- `readCSV`:用于从指定的 CSV 文件中读取数据,并将每一行的值存储在一个 `List<String[]>` 中。
- `writeCSV`:用于将数据写入到指定的 CSV 文件中。
您可以根据需要修改这个工具类,以满足特定的 CSV 格式要求或增加更多功能。
阅读全文