在没有delimeter的情况下读取控制台中的文本文件显示结果



我想读取一个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个选项,您可以阅读并尝试:

  1. 使用java.util.Scanner
  2. 使用String.split()函数
  3. 使用第三方库,如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*"是项之间任何空格的正则表达式。

最新更新