我想读取一个csv文件,并在命令行中将结果打印为不带delimetire的单独数据。
for ex csv文件有数据PVT有限公司,计算机部门,5名员工
That needs to be displayed in command prompt as
PVT Ltd
computer department
5 Employees
现在我有代码
try{
File myFile=new File("CSV-to-ArayList.csv");
FileReader fileReader=new FileReader(myFile);
BufferedReader reader=new BufferedReader(fileReader);
String line=null;
while((line= reader.readLine())!= null){
System.out.println(line);
}
reader.close();
}catch(Exception ex){
ex.printStackTrace();
}
但这个打印结果,因为它像csv文件PVT有限公司,计算机部门,5名员工
请帮我怎样才能达到我想要的结果。
这里有3个选项,您可以阅读并尝试:
- 使用
java.util.Scanner
- 使用
String.split()
函数 - 使用第三方库,如OpenCSV
下面是一些代码:
http://howtodoinjava.com/2013/05/27/parse-csv-files-in-java/
这是一个很好的例子来实验基本的java概念
我希望你能利用这一点来获得知识和基本的操作方法。
您可以按分隔符拆分字符串,然后使用新的分隔符(如空格或新行)连接:
所以不是:
while((line= reader.readLine())!= null){
System.out.println(line);
}
你可以做:
while((line= reader.readLine())!= null){
System.out.println(line.split(",").join("n"));
}
如果唯一的分隔符应该是","您可以首先读取整个文件,然后将它们拆分为String[],然后可以轻松地逐行显示,或者使用它执行其他操作。这将是我的代码:
try {
File myFile = new File("est.csv");
FileReader fileReader = new FileReader(myFile);
String result;
try (BufferedReader reader = new BufferedReader(fileReader)) {
String line;
result = "";
while ((line = reader.readLine()) != null) {
result = result.concat(line);
}
}
String[] items = result.split(",\s*");
for (String item : items) {
System.out.println(item);
}
} catch (Exception ex) {
ex.printStackTrace();
}
"\s*"是项之间任何空格的正则表达式。