【发布时间】:2013-11-24 18:20:46
【问题描述】:
您好,我正在尝试在 JAVA 中读取名为 test.csv 的 CSV 文件。
下面是我的代码:
import java.io.BufferedReader;
import java.io.FileReader;
public class InsertValuesIntoTestDb {
@SuppressWarnings("rawtypes")
public static void main(String[] args) throws Exception {
String splitBy = ",";
BufferedReader br = new BufferedReader(new FileReader("test.csv"));
String line = br.readLine();
while(line!=null){
String[] b = line.split(splitBy);
System.out.println(b[0]);
}
br.close();
}
}
这是我的 CSV 文件 (test.csv):
a,f,w,b,numinst,af,ub
1RW,800,64,22,1,48:2,true
1RW,800,16,39,1,48:2,true
1RW,800,640,330,1,48:2,true
1RW,800,40,124,1,48:2,true
1RW,800,32,104,1,48:2,true
1RW,800,8,104,1,48:2,true
1R1W,800,65536,39,1,96:96,true
1R1W,800,2048,39,1,96:96,true
1R1W,800,8192,39,1,48:48,true
我正在尝试打印 csv 中的第一列,但我得到的输出只有 a 在无限循环中。谁能帮我修复此代码以打印整个第一列。谢谢。
【问题讨论】:
-
你不会在循环中重新分配
line,所以代码循环直到行是null,这永远不会发生。 -
只是一个注释,希望能帮助您度过我们中的一些人所经历的一些痛苦和折磨。不要为 csv 编写自定义解析器和编写器...当然看起来很简单,每一行都是一行,每个逗号是一列。这是真的,直到它不是!看看opencsv.sourceforge.net 或其他图书馆之一。它将消除维护正确 csv 格式的痛苦。
-
记录是Java,不是JAVA。