Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算java程序无法读取的单元格数_Java_Csv - Fatal编程技术网

如何计算java程序无法读取的单元格数

如何计算java程序无法读取的单元格数,java,csv,Java,Csv,我正在尝试读取csv文件,并对由于某些错误而无法读取的单元格进行计数。 这是密码 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.File; import javax.swing.JFileChooser; public class CSVReader { public static void main(String[] args)

我正在尝试读取csv文件,并对由于某些错误而无法读取的单元格进行计数。 这是密码

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.File;
import javax.swing.JFileChooser;

public class CSVReader {
    public static void main(String[] args) {
        JFileChooser dialogue = new JFileChooser();
        dialogue.showOpenDialog(null);
        String csvFile = dialogue.getSelectedFile().getAbsolutePath();
        System.out.println(csvFile);
        String line = "";
        String cvsSplitBy = ";";
        try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
            while ((line = br.readLine()) != null) {
                    String[] country = line.split(cvsSplitBy);
                    System.out.println("cell1 = " + country[0] + " , next= " + country[1] + " ,  next= "+ country[2] + " , next= " + country[3] + " , next= "+ " ");

        }

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

如何计算未读取的单元格数?

理想情况下,您希望有一个“验证方法”来检查输入是否有效,然后增加一个计数器。但是,使用您已经发布的代码,您可以在catch块中添加一个计数器,如下所示:

public class CSVReader {
    public static void main(String[] args) {
        int count = 0;// INITIALIZE COUNTER
        JFileChooser dialogue = new JFileChooser();
        dialogue.showOpenDialog(null);
        String csvFile = dialogue.getSelectedFile().getAbsolutePath();
        System.out.println(csvFile);
        String line = "";
        String cvsSplitBy = ";";
        try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
            while ((line = br.readLine()) != null) {
                    String[] country = line.split(cvsSplitBy);
                    System.out.println("cell1 = " + country[0] + " , next= " + country[1] + " ,  next= "+ country[2] + " , next= " + country[3] + " , next= "+ " ");

        }

        } catch (IOException e) {
            count++; // INCREMENT COUNTER
            e.printStackTrace();
        }

    }

}

注意,您可能需要将整个过程包装在一个循环中,这样即使在抛出异常之后,它也会继续

嗯,你必须读这行,然后检查这行是否有效。然后你增加一个计数器。不幸的是,您没有显示任何输入示例,也没有描述您定义为无效行的内容。在当前状态下无法回答该问题。请阅读,谢谢。投票结束,因为需要详细信息。谢谢你的回答,我如何知道单元格的数量,以便使用循环