繁体   English   中英

编写/更改CSV文件Java

[英]Writing/Altering csv file java

我正在加载CSV文件并保持活动状态,而没有关闭BufferReader。 现在,我想向CSV添加/删除更多行并获取更新的CSV。 这意味着我想在CSV文件更改时动态通知。

这是我的示例代码:

public class Check {


    public static void main(String args[]) throws IOException, InterruptedException{
        Check ch = new Check();
        //args[0] = "C:\\Users\\raponnam\\Desktop\\GxDefault.csv";
        String csvFile="C:\\Users\\raponnam\\Desktop\\GxDefault.csv";

        int lineCounter=0;
        if (csvFile!=null)
        {
            BufferedReader csvToRead = null;
            try{
                csvToRead = new BufferedReader(new FileReader(csvFile));
                String line;
                while ((line=csvToRead.readLine())!=null)
                {
                    lineCounter++;
                    String[] splitLine = line.split(",");
                    System.out.println("no of lines-->> "+lineCounter);
                }
                while(true)
                {

                    System.out.println("wait 6 seconds");
                    Thread.sleep(6000);
                }
            }finally{
                //csvToRead.close();
            }
        }
    }
}

CSV处理比您最初想的要复杂得多。

引起噩梦的问题是不同的列分隔符,区域设置(例如,如果使用,对于列分隔符,它可能会在某些区域设置上以双精度返回,因为它用于表示小数),有时列会被特殊字符包裹(如"' ),转义进入图片等。

如果您允许我提供建议,请为OpenCSV之类的任务使用成熟的CSV库(但那里有很多替代方案)。 使用起来非常琐碎,请参见链接的站点以获取示例。

用这个。 重组了代码。 如果readLine返回null后返回数字,则可以假定已将某些内容添加到csv文件中。

PS :如果文件内容被删除; 该代码不起作用。

String csvFile = "C:\\a.csv";

    int lineCounter = 0;
    if (csvFile != null) {
        BufferedReader csvToRead = null;
        try {
            csvToRead = new BufferedReader(new FileReader(csvFile));
            String line;
            while (true) {
                if ((line = csvToRead.readLine()) != null) {
                    lineCounter++;
                    String[] splitLine = line.split(",");
                    System.out.println("no of lines-->> " + lineCounter);
                }
                System.out.println("wait 6 seconds");
                Thread.sleep(6000);
            }
        } finally {
            // csvToRead.close();
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM