有没有办法在Java中一次读取两行csv文件?
我可以使用Scanner一次读取一个(必须这样做):
String line = input.nextLine();
String[] nline = line.split ("[,]");
......
以下是一些示例数据和简短说明。我需要一次读取这两个,所以我可以进行其他处理。
以“创建”开头的第一行创建一个人 第二行“行动”是被创造者的行为
create,Mr. Jones,blah,blah
action,1,3
create,Mrs.Smith,blah,blah
action,4,10
....
提前致谢。
答案 0 :(得分: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
}
或者
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
}
答案 1 :(得分:4)
String line = input.nextLine() + input.nextLine();
答案 2 :(得分:3)
Cory的答案很好但是你的下一部分工作
String[] nline = line.split ("[,]");
......
你需要在那里添加逗号
String line = input.nextLine() + "," + input.nextLine();