Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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 如何使用OpenCSV下一行阵列_Java_Csv_Opencsv - Fatal编程技术网

Java 如何使用OpenCSV下一行阵列

Java 如何使用OpenCSV下一行阵列,java,csv,opencsv,Java,Csv,Opencsv,所以,我正在使用OpenCSV进行一个项目,到目前为止,我做得很好,我成功地读取了一个CSV文件,也写入了一个。因为这是我第一次使用OpenCSV,所以我决定使用我在互联网上找到的一个教程,并稍作修改。所以,我做了一个名为ReadData()的方法。我可以很好地读取CSV并将其打印到控制台,但我想做的是在方法之外访问“nextLine”数组 public void ReadData(String filelocation) { filelocation = System.getP

所以,我正在使用OpenCSV进行一个项目,到目前为止,我做得很好,我成功地读取了一个CSV文件,也写入了一个。因为这是我第一次使用OpenCSV,所以我决定使用我在互联网上找到的一个教程,并稍作修改。所以,我做了一个名为ReadData()的方法。我可以很好地读取CSV并将其打印到控制台,但我想做的是在方法之外访问“nextLine”数组

    public void ReadData(String filelocation) {
    filelocation = System.getProperty("user.dir")+"/data/"+filelocation;
    try {
        CSVReader savereader = new CSVReader(new FileReader(filelocation), ',', '"', 0);
        String[] nextLine;
            while((nextLine = savereader.readNext()) != null) {
                if(nextLine != null) {
                    //Make sure everything went through
                    System.out.println("Data Read. Results:");
                    System.out.println(Arrays.toString(nextLine));
                }
            }
    } catch (FileNotFoundException ex) {
        //Handle Exception
    } catch (IOException ex) {
        //Handle Exception
    }
}
这个方法从我指定的文件中读取数据。但是,我希望能够用这些数据做一些事情。例如,我想取nextLine[0],看看它是否为空,如果为空,则执行一件事。如果它不是,那么我想做一些其他的事情,使它相等

提前谢谢你,我希望我对我要实现的目标已经足够清楚了

问候,


Johnny

您遇到的问题是java问题,而不是opencsv。问题是nextline是方法的本地,在您的例子中是try块的本地。因此,方法之外的任何内容都不能引用nextline

您可以将nextline设置为该方法的本地,而不是try,并让该方法返回nextline(从void更改为String[]),但您将只返回最后一行

因为您希望(能够在读取数据后检查所有数据)将读取的每个字符串[]存储到列表中,并让方法返回该字符串。但是如果要这样做,您应该只使用CSVReader()的readAll方法。但要注意,如果这样做,则在处理大型文件时可能会出现OutOfMemoryException


希望有帮助

谢谢大家!!这帮了大忙!