最近在做嵌入式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();
}
}
}
以上方法是实际项目中用到的,记录下来,供自己查阅。