在没有分隔符的控制台中读取文本文件显示结果

时间:2015-12-27 18:52:06

标签: java

我想读取一个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名员工

请帮助我如何达到我想要的结果。

3 个答案:

答案 0 :(得分:2)

以下是3个您可以阅读和试验的选项:

  1. 使用java.util.Scanner
  2. 使用String.split()功能
  3. 使用第三方库,例如 OpenCSV
  4. 这里有一些代码:
    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 *"是项目之间任何空格的正则表达式。