Java处理CSV文件:读写操作示例

原创 ╰+攻爆jí腚メ 2024-11-27 00:36 135阅读 0赞

在Java中,我们可以使用java.iojava.util包来处理CSV文件。以下是一个基本的读写操作示例:

  1. 创建CSV文件并写入数据
  1. import java.io.FileWriter;
  2. import java.io.IOException;
  3. public class CSVWriterExample {
  4. public static void main(String[] args) {
  5. // 创建一个CSV文件,如果不存在则会创建
  6. try (FileWriter writer = new FileWriter("my_csv_file.csv")); // 写入到这个writer中
  7. writer.write("Name, Age\nJohn, 30\nJane, 25"); // 这行是写入csv的第一行
  8. } catch (IOException e) {
  9. System.err.println("Error writing CSV file: " + e.getMessage());
  10. }
  11. }
  12. }
  1. 创建CSV文件并读取数据
  1. import java.io.BufferedReader;
  2. import java.io.FileReader;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. public class CSVReaderExample {
  6. public static void main(String[] args) {
  7. // 读取csv文件
  8. List<String[]> csvData = readCSVFile("my_csv_file.csv");
  9. // 打印读取的csv数据
  10. for (String[] row : csvData) {
  11. System.out.println(Arrays.toString(row)));
  12. }
  13. }
  14. private static List<String[]> readCSVFile(String filename) {
  15. List<String[]> csvData = new ArrayList<>();
  16. try (BufferedReader br = new BufferedReader(new FileReader(filename)))) {
  17. String line;
  18. while ((line = br.readLine()) != null)) {
  19. // 假设csv每一行的数据格式是"Name, Age"
  20. String[] row = line.split(","); // 使用逗号作为分割符
  21. // 检查数据有效性,例如年龄是否为数字
  22. if (isValidData(row[1]))) {
  23. csvData.add(row);
  24. } else {
  25. System.out.println("Invalid data found in CSV row: " + row[1]);
  26. }
  27. }
  28. } catch (IOException e) {
  29. System.err.println("Error reading CSV file: " + e.getMessage());
  30. return null; // 返回一个空列表,表示读取失败
  31. }
  32. return csvData;
  33. }
  34. private static boolean isValidData(String data) {
  35. // 这里只是一个示例,根据实际需求检查数据有效性
  36. if (data != null && !data.isEmpty()) {
  37. try {
  38. Integer.parseInt(data); // 检查年龄是否为数字
  39. return true; // 如果年龄可以解析为数字,则认为数据有效
  40. } catch (NumberFormatException e) {
  41. System.out.println("Invalid data found in CSV row: " + data);
  42. return false;
  43. }
  44. } else {
  45. System.out.println("Empty data found in CSV row.");
  46. return false;
  47. }
  48. return false; // 如果在这个函数的最后,没有返回真,则表示数据无效
  49. }
  50. }

这个示例中,首先创建一个CSV文件并写入一些数据。然后读取这个CSV文件,并打印出所有读取的数据。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,135人围观)

还没有评论,来说两句吧...

相关阅读