[英]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.