簡體   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