嗨,我正在尝试读取test.csv
在JAVA中调用的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();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的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
Run Code Online (Sandbox Code Playgroud)
我试图打印csv中的第一列,但我得到的输出只是a
一个无限循环.任何人都可以帮我修复此代码以打印整个第一列.谢谢.
Pau*_*gas 18
如果您使用的是Java 7+,则可能需要使用NIO.2,例如:
❍ 代码:
public static void main(String[] args) throws Exception {
File file = new File("test.csv");
List<String> lines = Files.readAllLines(file.toPath(),
StandardCharsets.UTF_8);
for (String line : lines) {
String[] array = line.split(",", -1);
System.out.println(array[0]);
}
}
Run Code Online (Sandbox Code Playgroud)
❍ 输出:
a
1RW
1RW
1RW
1RW
1RW
1RW
1R1W
1R1W
1R1W
Run Code Online (Sandbox Code Playgroud)
Rei*_*eus 17
在循环内连续读取输入,以便为变量line
分配一个非初始值的值
while ((line = br.readLine()) !=null) {
...
}
Run Code Online (Sandbox Code Playgroud)
旁白:使用诸如OpenCSV之类的 CSV库已经解决了这个问题.以下是读取和写入 CSV文件的示例
Pra*_*ngh 16
如果您有csv文件,则逗号分割不会一直有效
"Name" , "Job" , "Address"
"Pratiyush, Singh" , "Teacher" , "Berlin, Germany"
Run Code Online (Sandbox Code Playgroud)
所以,我建议使用Apache Commons CSV API:
Reader in = new FileReader("input1.csv");
Iterable<CSVRecord> records = CSVFormat.EXCEL.parse(in);
for (CSVRecord record : records) {
System.out.println(record.get(0));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
112446 次 |
最近记录: |