Java处理CSV文件:读写操作示例
在Java中,我们可以使用java.io
和java.util
包来处理CSV文件。以下是一个基本的读写操作示例:
- 创建CSV文件并写入数据:
import java.io.FileWriter;
import java.io.IOException;
public class CSVWriterExample {
public static void main(String[] args) {
// 创建一个CSV文件,如果不存在则会创建
try (FileWriter writer = new FileWriter("my_csv_file.csv")); // 写入到这个writer中
writer.write("Name, Age\nJohn, 30\nJane, 25"); // 这行是写入csv的第一行
} catch (IOException e) {
System.err.println("Error writing CSV file: " + e.getMessage());
}
}
}
- 创建CSV文件并读取数据:
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
public class CSVReaderExample {
public static void main(String[] args) {
// 读取csv文件
List<String[]> csvData = readCSVFile("my_csv_file.csv");
// 打印读取的csv数据
for (String[] row : csvData) {
System.out.println(Arrays.toString(row)));
}
}
private static List<String[]> readCSVFile(String filename) {
List<String[]> csvData = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(filename)))) {
String line;
while ((line = br.readLine()) != null)) {
// 假设csv每一行的数据格式是"Name, Age"
String[] row = line.split(","); // 使用逗号作为分割符
// 检查数据有效性,例如年龄是否为数字
if (isValidData(row[1]))) {
csvData.add(row);
} else {
System.out.println("Invalid data found in CSV row: " + row[1]);
}
}
} catch (IOException e) {
System.err.println("Error reading CSV file: " + e.getMessage());
return null; // 返回一个空列表,表示读取失败
}
return csvData;
}
private static boolean isValidData(String data) {
// 这里只是一个示例,根据实际需求检查数据有效性
if (data != null && !data.isEmpty()) {
try {
Integer.parseInt(data); // 检查年龄是否为数字
return true; // 如果年龄可以解析为数字,则认为数据有效
} catch (NumberFormatException e) {
System.out.println("Invalid data found in CSV row: " + data);
return false;
}
} else {
System.out.println("Empty data found in CSV row.");
return false;
}
return false; // 如果在这个函数的最后,没有返回真,则表示数据无效
}
}
这个示例中,首先创建一个CSV文件并写入一些数据。然后读取这个CSV文件,并打印出所有读取的数据。
还没有评论,来说两句吧...