21xrx.com
2024-12-22 22:19:55 Sunday
登录
文章检索 我的文章 写文章
Java 文件读取、转化成 CSV、校验字段长度
2023-06-17 08:54:43 深夜i     --     --
Java 文件读取 CSV 字段长度 校验

Java 是一种广泛应用于企业级后台开发、大数据处理等领域的编程语言。在实际的业务操作中,经常需要读取文件并进行一些操作,比如将一个普通文本文件转化成 CSV 格式,或者对 CSV 文件进行字段长度的校验。下面就来演示一下 Java 中如何实现这两个功能。

1. Java 文件读取并转化成 CSV 格式

首先,我们需要先得到一个文本文件,假设这个文件的路径是 "/Users/steve/input.txt"。然后我们可以用 Java 的 BufferedReader 类读取这个文件,将读取到的每行文本按照指定分隔符进行分割,并加上 CSV 的双引号包裹,最后写入到一个新文件中。下面是具体的代码实现:


import java.io.*;

public class TextToCsv {

  public static void main(String[] args) {

    String inputFile = "/Users/steve/input.txt";

    String outputFile = "/Users/steve/output.csv";

    String delimiter = ",";

    String line;

    try {

      BufferedReader br = new BufferedReader(new FileReader(inputFile));

      BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile));

      while ((line = br.readLine()) != null) {

        String[] fields = line.split(delimiter);

        for (int i = 0; i < fields.length; i++) {

          if (i != 0) {

            bw.write(delimiter);

          }

          bw.write("\"" + fields[i] + "\"");

        }

        bw.newLine();

      }

      br.close();

      bw.close();

    } catch (IOException e) {

      System.err.println(e);

      System.exit(1);

    }

  }

}

上述代码中,我们用 BufferedReader 读取了输入文件的每一行,用 FileWriter 创建了一个输出文件,然后用 BufferedWriter 将每行转化成 CSV 格式的文本写入到输出文件中。这里需要注意的是,如果输入文件中包含分隔符、双引号等特殊字符,可能会导致输出文件中的格式出现问题,因此需要进行一些额外的处理。

2. Java CSV 文件校验字段长度

对于已经是 CSV 格式的文件,我们可能需要对其中的每个字段长度进行校验,以保证数据的正确性。下面是一个简单的示例代码,用于读取 CSV 文件中的每一行,并对其中的每个字段长度进行判断:


import java.io.*;

public class CsvFieldValidation {

  public static void main(String[] args) {

    String inputFile = "/Users/steve/input.csv";

    String delimiter = ",";

    String line;

    int maxFieldLength = 10;

    try {

      BufferedReader br = new BufferedReader(new FileReader(inputFile));

      while ((line = br.readLine()) != null) {

        String[] fields = line.split(delimiter);

        for (int i = 0; i < fields.length; i++) {

          if (fields[i].length() > maxFieldLength) {

            System.out.println("Error: field length is too long: " + fields[i]);

          }

        }

      }

      br.close();

    } catch (IOException e) {

      System.err.println(e);

      System.exit(1);

    }

  }

}

上面的代码中,我们设置了一个最大字段长度(maxFieldLength),并读取了输入文件的每一行和每个字段,对字段长度进行了检查。如果某个字段长度超过了设定的最大长度,就在控制台输出一个错误信息。当然,实际的业务可能需要更加复杂的处理逻辑,比如对字段类型进行校验、对字段值进行过滤等等。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复