由于要求把数据库查询出来的海量数据写入文件,经常遇到内存溢出的情况,下面是当前的一段代码,但效果并不是很明显。麻烦高手贴段代码参考一下:
Vector vec;// 存放数据库查询结果的容器
Hashtable table;
Enumeration enume;// table和enume用来读vec中的数据
DataOutputStream out = null;
String filePath="d:/sample.txt"; // 文件名加上文件路径
int int_count=50;//写文件的总次数
int per_page; // 每次要向文件中写与多少条数据
try
{
   StringBuffer outData = null;
   for(int i=1;i<=int_count;i++)
   {
out=new DataOutputStream(new FileOutputStream(filePath));
outData=new StringBuffer();
vec=DBController.executeQueryByPage(sql,i,per_page);//第i次从数据库中取数据
for(int j=0;j<vec.size();j++)
{
table=(Hashtable)vec.get(j);
enume=table.keys();
while(enume.hasMoreElements())
                  {   // 把查询的内容写入到StringBuffer中
                   outData.append(table.get(enume.nextElement()).toString()+"\t");
                   }
                   outData.append("\r\n");
}
out.write(outData.toString().getBytes());
out.flush();
outData = null;
vec.clear();
   }
   out.close();
}catch(Exception e)
{
  ......
}
我对java写文件不是太懂,望高手给出几种buffer写文件的各种特点,性能优势等区别,针对海量数据的写入文件最好贴段代码参考一下,不胜感激。