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