一次读取两行CSV(Java)

rel*_*lyt 2 java csv

有没有办法在Java中一次读取两行csv文件?

我可以使用Scanner一次读取一个(必须这样做):

String line = input.nextLine();
String[] nline = line.split ("[,]");
......
Run Code Online (Sandbox Code Playgroud)

以下是一些示例数据和简短说明.我需要一次读取这两个,所以我可以继续我的其他处理.

以"创建"开头的第一行创建一个人,第二行"动作"是创建者的动作

create,Mr. Jones,blah,blah 
action,1,3
create,Mrs.Smith,blah,blah
action,4,10
....
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Jer*_*ond 6

如果你想用Java解析CSV文件我会避免通过string.split()方法进行行拆分.如果您的字段包含逗号,则可能会遇到问题.对于Java,我建议使用opencsv来解析数据.与使用扫描仪类似,您可以逐行读取它,或者如果它不是太大则将整个文件啜饮,并且只是一次遍历列表到项目.

CSVReader reader = ...
String[] firstLine; // fields from first line
String[] secondLine; // fields from second line

while ((firstLine = reader.next()) != null && (secondLine = reader.next()) != null) {
   // do something with two lines        
}     
Run Code Online (Sandbox Code Playgroud)

要么

CSVReader reader = ...
List<String[]> allLines = reader.readAll();
// TODO: validate we have an even number of lines

for (int i = 0; i < allLines.size(); i += 2) {
   String[] firstLine = allLines.get(i);
   String[] secondLine = allLines.get(i+1);

   // do something with two lines
}
Run Code Online (Sandbox Code Playgroud)