java - csvReader 在读取 csv 文件时跳过第一列每行的第一个字母

标签 java csv

我用Java编写了一个csvReader方法。 一切似乎都工作正常,但它只是在打印值时跳过第一列中每行的第一个字母。这是我的代码=>

public static void csvReader(String fileName) {

    try {
        BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
        List<Student> students = new ArrayList<>();
        fileReader.readLine();

        while (fileReader.read() > 0) {
            String line = fileReader.readLine();
            String[] tokens = line.split(COMMA_DELIMETER);

            if (tokens.length > 0) {
                Student student = new Student(tokens[0], tokens[1], Integer.valueOf(tokens[2]),
                        Integer.valueOf(tokens[3]));
                students.add(student);
            }
        }

        students.forEach(System.out::println);

    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

这里的“Student”只是一个具有名字、姓氏、id 和年龄字段的 POJO 类。得到的输出为 =>

Student details : ID = 101 first name = ikhil Last name = Chaurasia age = 28
Student details : ID = 102 first name = adhna Last name = Chaurasia age = 28

结果应该像=>

Student details : ID = 101 first name = Nikhil Last name = Chaurasia age = 28
Student details : ID = 102 first name = Sadhna Last name = Chaurasia age = 28

csv文件内容如下所示:

csv_file.csv

toString方法的实现如下所示:

public String toString() {
    return "Student details : ID = "+id+ " first name = "+firstName+ " Last name = "+lastName+ " age = "+age;
}

任何帮助将不胜感激。 谢谢

最佳答案

问题出在您的 while 循环条件中:fileReader.read() > 0

每次调用它时都会读取一个字符(例如“N”、“S”),这会导致对 readLine 的后续调用跳过第一个字符。

相反,只需使用 readLine 检查条件:

String line;
while ((line = fileReader.readLine()) != null) {
  String[] tokens = line.split(COMMA_DELIMETER);
  // do the rest of the stuff
}

关于java - csvReader 在读取 csv 文件时跳过第一列每行的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56093470/

相关文章:

Java 将数据从 CSV 导入 SQL 防止重复输入

android - 在 Android 应用程序中创建 .CSV 文件

php - 将 .csv 读入 PHP 数组

java - 在 Eclipse 中渲染 XML 期间引发异常

java - Windows 7中的JPA Eclipselink查询解析问题

java - 使用 cucumber-java 时如何组织步骤定义?

csv - 导入大型 CSV 文件的最佳实践

java - 自定义 SQL 查询,将 SELECT 结果插入到 Spring Boot JPA Hibernate 中的表中

java - 我可以使用设计模式来解决这个问题吗?

PHP Parse.com 将表格导出为 CSV 文件