我之前的函数是这样的
public void PUTLINE ( String filePath,String lineConten ) throws Exception
{
File file=new File(filePath);
BufferedWriter bw=new BufferedWriter(new FileWriter(file,true));
try
{
bw.write(lineConten);
bw.newLine();
}
catch(IOException e)
{
}
finally
{
bw.flush();
bw.close();
} }
这个函数并没有错误,它被用在DB2的存储过程操作文件,问题是它写一行就要打开关闭这个文件一次,如果我处理了50000条数据,我要向文件当中写50000行,效率很低,能否像ORACLE一样操作文件的时候,打开一次关闭一次,想写多少行写多少行。
public void PUTLINE ( String filePath,String lineConten ) throws Exception
{
File file=new File(filePath);
BufferedWriter bw=new BufferedWriter(new FileWriter(file,true));
try
{
bw.write(lineConten);
bw.newLine();
}
catch(IOException e)
{
}
finally
{
bw.flush();
bw.close();
} }
这个函数并没有错误,它被用在DB2的存储过程操作文件,问题是它写一行就要打开关闭这个文件一次,如果我处理了50000条数据,我要向文件当中写50000行,效率很低,能否像ORACLE一样操作文件的时候,打开一次关闭一次,想写多少行写多少行。
楼主【jin_ok】截止到2008-07-09 12:37:46的历史汇总数据(不包括此帖):
发帖的总数量:62 发帖的总分数:980 每贴平均分数:15
回帖的总数量:133 得分贴总数量:20 回帖的得分率:15%
结贴的总数量:55 结贴的总分数:700
无满意结贴数:22 无满意结贴分:445
未结的帖子数:7 未结的总分数:280
结贴的百分比:88.71 % 结分的百分比:71.43 %
无满意结贴率:40.00 % 无满意结分率:63.57 %
楼主加油
然后循环进行
bw.write(lineConten);
bw.newLine(); 完成之后再
bw.close();
private BufferedWriter writer;
private int writeCount=0;
public void PUTLINE(String filePath, String lineConten) throws Exception {
if(path==null || path.equals(filePath)==false){
if(writer!=null){
try{writer.flush();writer.close();}catch(Exception e){}
}
writer= new BufferedWriter(new FileWriter(filePath,true));
}
try {
writer.write(lineConten);
writer.newLine();
writeCount++;
if(writeCount%100==99)writer.flush();
} catch (IOException e) {
}
}
protected void finalize() throws Throwable {
super.finalize();
if(writer!=null){
writer.flush();writer.close();
}
}
重新改了一下: private String path;
private BufferedWriter writer;
private int writeCount=0;
public void PUTLINE(String filePath, String lineConten) throws Exception {
if(path==null || path.equals(filePath)==false){
if(writer!=null){
try{writer.flush();writer.close();}catch(Exception e){}
}
path=filePath;
writer= new BufferedWriter(new FileWriter(filePath,true));
}
try {
writer.write(lineConten);
writer.newLine();
writeCount++;
if(writeCount%100==99)writer.flush();
} catch (IOException e) {
}
}
protected void finalize() throws Throwable {
super.finalize();
if(writer!=null){
writer.flush();writer.close();
}
}
finalize()方法在对象销毁的时候不保证被执行的啊