我想读取一个csv文件,并在命令行中将结果打印为不带delimetire的分隔数据。
对于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名员工
请帮助我如何达到我想要的结果。
答案 0 :(得分:2)
以下是3个您可以阅读和试验的选项:
java.util.Scanner
String.split()
功能这里有一些代码:
http://howtodoinjava.com/2013/05/27/parse-csv-files-in-java/
这是尝试基本java概念的一个很好的例子 我希望你能用它来获取知识和基本的方法。
答案 1 :(得分:0)
您可以按分隔符拆分字符串,然后使用新的分隔符(如空格或新行)进行连接:
所以而不是:
while((line= reader.readLine())!= null){
System.out.println(line);
}
你可以这样做:
while((line= reader.readLine())!= null){
System.out.println(line.split(",").join("\n"));
}
答案 2 :(得分:0)
如果唯一的分隔符应该是","您可以先读入整个文件,然后将它们拆分为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 *"是项目之间任何空格的正则表达式。