关于集合追加写入文件中,会重复前面的内容的解决
来源:互联网 发布:航模电调编程 编辑:程序博客网 时间:2024/06/05 12:05
原因:
因为ObjectOutputStream 默认的方法为writeStreamHeader()方法,这个方法使得前面的数据也会写进去。
解决方法:
重写writeStreamHeader()方法,追加写入文件时加个判断语句,是否为第一次写入,然后在取舍是否该过滤信息。
代码如下:
重写writeStreamHeader()方法,使追加写入文件时。判断是否为第一次读取,然后再取舍是否过滤信息
class MyObjectOutputStream extends ObjectOutputStream{
private static File f;
public static MyObjectOutputStream newInstance(File file,OutputStream out) throws IOException { f=file; return new MyObjectOutputStream(out);}private MyObjectOutputStream(OutputStream out) throws IOException{ super(out);//调用重写的writeStreamHeader()}//重写方法protected void writeStreamHeader() throws IOException { if(!f.exists() || (f.exists() && f.length() == 0)){ super.writeStreamHeader(); } else{ super.reset(); }}
}
写入时的代码:
public void input(Object p,File f){ FileOutputStream fos=null; try{ fos=new FileOutputStream(f,true); MyObjectOutputStream oos=MyObjectOutputStream.newInstance(f,fos); oos.writeObject(p); fos.close(); oos.close(); }catch(FileNotFoundException ex){ ex.printStackTrace(); }catch(IOException ex2){ ex2.printStackTrace(); } }
阅读全文
0 0
- 关于集合追加写入文件中,会重复前面的内容的解决
- CSV写入文件追加新的内容,文件编码处理
- 对文件的追加写入
- jxl学习笔记(一)-------如何向excel文件中追加写入,而不会覆盖之前的内容
- Android追加换行写入内容到txt文件中
- 写入出字符串到一个文件而不覆盖原文件的内容(追加)
- python给文件写入/追加内容时输出x00和乱码的问题
- JAVA操作将内容追加写入文件
- android 文件储存追加写入内容
- shell写入文件,后面会覆盖前面
- 两个css文件定义了同样的内容,后执行的会覆盖前面的
- 追加文件内容的三种方法
- JAVA如何以追加的方式向文件中写入信息?
- 通过ObjectOutputStream向一个文件中多次以追加方式写入object的解决方案
- JAVA如何以追加的方式向文件中写入信息
- JAVA如何以追加的方式向文件中写入信息?
- Java File中追加新的内容
- 文件中追加文本内容
- 侧拉菜单点击跳转
- 轮播加点
- C#链接Excel , sql
- win10如何安装本地策略组
- 牛客算法--第九章
- 关于集合追加写入文件中,会重复前面的内容的解决
- 布局 drawable
- java蓝桥杯试题特殊回文字
- SSH整合Axis2
- ubuntu下如何正确使用vim编辑器
- 75个顶级开源安全应用
- Qt下载地址
- SSH框架整合,annotation版
- https传输协议原理