- 浏览: 550906 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (344)
- ··············未分类············· (33)
- Eclipse 插件 (15)
- EDA 工具 (1)
- Linux/Unix (3)
- Java (43)
- Java Applet (1)
- Java Draw2d (22)
- Java Draw2d version2 (6)
- Java GEF (2)
- Java SWT (21)
- Java SWT Image 图像 (21)
- Java SWT Tree (16)
- Java SWT Table (4)
- Java SWT TableViewer (11)
- Java SWTbot (4)
- Java Test (2)
- Java Thread 多线程 (22)
- Java Zest (5)
- RC2_3S400学习笔记 (16)
- tcl 脚本 (10)
- Verilog (7)
- XML (6)
- 国家 (5)
- 感叹 (4)
- 面试题 (9)
- 生活 (36)
- 足球 世界杯 (8)
- 老公看你的 (3)
- web开发 (1)
- 数据结构——图 (7)
- c language (1)
最新评论
-
zxjlwt:
路过素人派http://surenpi.com
SWT 树的事件 SWT.Selection SWT.CHECK SWT.DefaultSelection -
hj01kkk:
1楼用法正解
JDK 7 中的 Fork/Join 模式 -
fish_no7:
使用 new SortTask().fork()
JDK 7 中的 Fork/Join 模式 -
wpf523:
mark
Java 多线程例子6 线程安全 线程同步 同步代码块 同步函数 -
uniquejava:
以前碰到过,估计是在icu包中实现了双击自动选中一段文本的功能 ...
java.lang.NoClassDefFoundError: com/ibm/icu/text/BreakIterator
引子:在编写程序的时候,所有时间的变化、对基本的数据通常要更新,如一个学生类,一开始的时候,我们只想到了保存姓名,出生年月的属性,后来我们又想加入学生性别的属性了,后来又想加入学生的地址了。如何才能做到读写统一呢?
例子:
例子中给出了类D1_0-》D1_1-》D1_2,这三个类是继承关系,D1_0中只有d1,隔了一段时间想加入d2,写了类D1_1,又想加d3,写了类D1_2。数据保存的时候通常是个数组,这样我们假设写的时候写的数组始终是数组D1_0【】,读的时候也是。这样数据属性的变化,读写程序就不需要变了。
注意点:
1,旧版本的数据读入后,增加的数据又是新的版本,这样直接把旧的转化为新的数据,并成一个新数组写出了。
2,没有考虑,覆盖的问题,如果后来的数据想少些怎么办?现在认为不处理就行了。
3,。。。
public class Tsts { private static String file1_0 = "data1.0.txt"; private static String file1_1 = "data1.1.txt"; private static String file1_2 = "data1.2.txt"; public static void main(String[] args) { D1_0[] d0A = new D1_0[]{new D1_0(),new D1_0(),new D1_0()}; // data version 1.0 D1_1[] d1A = new D1_1[]{new D1_1(),new D1_1()}; // data version 1.1 D1_2[] d2A = new D1_2[]{new D1_2(),new D1_2(),new D1_2(),new D1_2()}; // data version 1.2 D1_0[] readData; // data version 1.0 saveData(file1_0, d0A); readData = loadData(file1_0); for(D1_0 d : readData) {d.print();} // data version 1.1 saveData(file1_1, d1A); readData = loadData(file1_1); for(D1_0 d : readData) {d.print();} // data version 1.2 saveData(file1_2, d2A); readData = loadData(file1_2); for(D1_0 d : readData) {d.print();} } private static void saveData(String file, D1_0[] d0A) { ObjectOutputStream oos=null; try { FileOutputStream fos = new FileOutputStream(file); oos = new ObjectOutputStream(fos); oos.writeObject(d0A); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(oos != null) { try { oos.close(); } catch (IOException e) { e.printStackTrace(); } } } } private static D1_0[] loadData(String file) { D1_0[] d0A=null ; ObjectInputStream ois=null; try { FileInputStream fis = new FileInputStream(file); ois = new ObjectInputStream(fis); d0A = (D1_0[])ois.readObject(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return d0A; } } class D1_0 implements Serializable{ private static final long serialVersionUID = -5747074459156767211L; private int d0; public void print() {System.out.println("D1_0 data version 1.0");} } class D1_1 extends D1_0 { private static final long serialVersionUID = -9091624871086037966L; private int d1; public void print() {System.out.println("D1_1 data version 1.1");} } class D1_2 extends D1_1 { private static final long serialVersionUID = -5704053473053777096L; private int d2; public void print() {System.out.println("D1_2 data version 1.2");} }
结果 写道
D1_0 data version 1.0
D1_0 data version 1.0
D1_0 data version 1.0
D1_1 data version 1.1
D1_1 data version 1.1
D1_2 data version 1.2
D1_2 data version 1.2
D1_2 data version 1.2
D1_2 data version 1.2
D1_0 data version 1.0
D1_0 data version 1.0
D1_1 data version 1.1
D1_1 data version 1.1
D1_2 data version 1.2
D1_2 data version 1.2
D1_2 data version 1.2
D1_2 data version 1.2
发表评论
-
异常Exception
2014-08-15 14:22 0有三种基本的异常类。 Error用于Java虚拟机报告系 ... -
hashmap的简单实现
2014-08-15 14:20 675来自Thinking In Java【P493】。 Ja ... -
hashcode的实现
2014-08-15 14:18 687ThinkinJava中给出了Effective Java的 ... -
验证Hashmap不支持同步,ConcurrentHashMap支持
2014-08-15 14:14 925一直都不知道concurrenthashmap有什么实际的用 ... -
Java 中的嵌套类可以访问Private
2014-07-18 10:54 554注意:Java中的嵌套类与C++中的嵌套类大致一致,只不过C ... -
简单的递归转非递归例子 Fibonacci
2014-07-11 14:41 777package org.vocano.java.tst.re ... -
Java中的缓存
2014-07-10 15:48 609原文链接:http://blog.sina.com.cn/s ... -
快速随机访问和可删除的数组
2014-06-06 16:03 574原文链接:http://www.blogjava.net/q ... -
广度优先 深度优先访问 树
2014-06-06 15:37 620public class Tst { sta ... -
类语句块
2014-03-31 15:49 512public class Snippet extends s ... -
字符串不同,hashcode可以相同
2014-03-31 15:22 703public class Snippet { publi ... -
基本的小程序
2014-03-25 14:45 713斐波那契数列。(Fibonacci) public cla ... -
Java中hashCode和equals方法的正确使用
2014-02-19 11:28 677面试题:新建一个类,这个类要作用hashmap的键值,问需要 ... -
一个字符串在另一个字符串中出现的次数
2013-12-13 17:09 645一个字符串在另一个字符串中出现的次数 pub ... -
Java hashcode
2013-09-25 16:19 712原文:http://www.ibm.com/develope ... -
java 没有无符号整数
2013-09-02 17:09 896由于Java的原始类型里没有无符号类型,如果你需要某个宽度的 ... -
数组操作
2013-06-24 16:28 6301 数组倒叙:Snippet181 写道 int[] ... -
write object, read object 不一定比自己parse快速,只是简单,可以扩展好
2013-05-13 17:19 746write object, read object 不一定比 ... -
java.lang.IllegalStateException
2013-04-17 18:34 1114在使用iterator的remove的时候出现了java.la ... -
函数返回值
2013-04-17 18:15 754现在代码的水平还是 ...
相关推荐
C# 数据采集器读写 实例源码(硬件读写)
C# AllenBradley读写操作PLC数据,C# 罗克韦尔读写操作PLC数据 使用一个开源的技术来读写罗克韦尔PLC数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持...
(2)普通锁串行,读写锁读读并行,数据多版本读写并行; (3)redo日志保证已提交事务的ACID特性,设计思路是,通过顺序写替代随机写,提高并发; (4)undo日志用来回滚未提交的事务,它存储在回滚段里; (5)InnoDB是...
数据图片读写器
适合的读者:初学用多线程实现对串口的异步操作,对线程的理解,以及对串口的读写。还有文件的读写都有最基本的使用方式。调试时,可以用串口调试助手一起结合的去学习~
DM 数据守护与读写分离集群DM 数据守护与读写分离集群DM 数据守护与读写分离集群DM 数据守护与读写分离集群
本工具可以用于西门子(S7-200Smart/300/400/1200/1500)PLC系列数据的读写,方面测试数据的正确读写;
DM7数据守护与读写分离集群
Modbus读写数据比较,Modbus读写数据比较
CMOS 读写器,win2k下调试通过。版本1.1
如何在WINCC中基于VBS实现对EXCEL文件中数据的读写?
AVR 单片机 EEPROM的数据读写 完整子程序模块 可以直接调用移植
用于读写cdma手机数据的软件,懂的朋友自然知道是干啥的哈
产生10000个[0,100000)间的分段有序随机整数,存储于data11.txt文件。然后读取该文件的数据,调用洗牌算法打乱次序,将数据存储于data12.txt文件中。
地理信息系统和遥感影像的处理和应用过程中,栅格影像都包含有各种地理信息,而一般的 ...简单介绍了1rIFF图像文件结构以及对地理数据的存储方式,文最后介绍了实现GeoTIFF图像文件的读写的关键步骤
你想读写二进制文件,比如图片,声音文件等等。 解决方案 使用模式为 rb 或 wb 的 open() 函数来读取或写入二进制数据。比如: # Read the entire file as a single byte string with open('somefile.bin', 'rb') ...
Windows下进行底层IO操作之CMOS数据的读取和显示,在计算机系统中,对CMOS中数据的读写是通过两个I/O端口来实现的,其中,端口70H是一个字节的只写端口,用它来设置CMOS中的数据地址;而端口71H是用来读写端口70H...
有时候需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据。在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有:filp_open() filp_close(), vfs_read() vfs_write(),set_...
百万级数据读写Excle(源码) 可以CSDN关注博客:浪子燕青18 有关于百万级数据读取和写入EXCLE的博文。
用独立的 TThread 单元 在同一个进程中 将 一份数据很多的文件 分成 两块 同事来读取。 提快速度。