有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在控制台中读取文本文件显示结果,无delimeter

我想读取一个csv文件,并在命令行中将结果作为单独的数据打印出来,不带delimetire

对于ex csv文件,有数据 私人有限公司,计算机部门,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文件一样 私人有限公司,计算机部门,5名员工

请帮助我如何实现我想要的结果


共 (3) 个答案

  1. # 1 楼答案

    以下是3个选项,您可以阅读并尝试:

    1. 使用java.util.Scanner
    2. 使用String.split()函数
    3. 使用第三方库,如OpenCSV

    下面是一些代码:
    http://howtodoinjava.com/2013/05/27/parse-csv-files-in-java/

    这是一个实验基本java概念的好例子
    我希望你能利用这一点获得知识和基本操作方法

  2. # 2 楼答案

    如果唯一的分隔符应该是“,”,那么可以先读取整个文件,然后将它们拆分为字符串[],然后可以轻松地逐行显示,或者使用它执行其他操作。这就是我的代码:

    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*”是项之间任何空格的正则表达式

  3. # 3 楼答案

    可以按分隔符拆分字符串,然后使用新分隔符连接,如空格或新行:

    因此,与其说:

    while((line= reader.readLine())!= null){
        System.out.println(line);
    }
    

    你可以做:

    while((line= reader.readLine())!= null){
        System.out.println(line.split(",").join("\n"));
    }