最近在做嵌入式Linux平台上的服務器,使用的工具是Java。在項目中一方面要將所有數據記錄在日志文件中,存儲於嵌入式Linux平台上;另一方面要將實時數據存放在一個表格裡,隨時供網絡查詢。
日志文件我們曾經選用過txt文件,這個最簡單;excel文件,使用jxl;使用過sqlLite嵌入式數據庫,使用第三方的java庫。調試通過,運行的還算不錯。不過遇到了一個java虛擬機內存不足的問題,我們將虛擬機分配的內存設置為32M,解決了那個問題。
可是老板認為以上方法太繁瑣,兼顧美觀性和實用性,選用了CSV文件作為日志文件。
查來查去,總結了一下網絡上大家的方法。讀寫CVS文件主要有兩大類方法:借用第三方庫和使用FileWriter類。
一、使用第三方庫的方法。
目前的第三方庫主要有opencsv、javacsv,貌似還有個叫supercsv,不過都大同小異。
二、使用FileWriter的方法。
這是我最終使用的方法,很好用,也不用添加庫,加一個示例代碼,與大家分享。
import java.io.FileWriter;
import java.io.IOException;
public class javacsv {
/**
* 寫csv文件
*/
public static void main(String[] args) {
try {
//如果沒有這個文件會自動創建
//如果有了這個文件,會在該文件的尾部續寫
FileWriter fw = new FileWriter("E:\\youyouTest.csv",true);
fw.write("aaa,bbb,ccc,ddd,eee,fff,ggg,hhh\n");
fw.write("aaa,bbb,ccc,ddd,eee,fff,ggg,hhh\n");
fw.write("aa1,bb1,cc1,dd1,ee1,ff1,gg1,hh1\n");
fw.write("aaa\n");
fw.write("aa2,bb2,cc2,dd2,ee2,ff2,gg2,hh2\n");
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上方法是實際項目中用到的,記錄下來,供自己查閱。