- 浏览: 564285 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 709来自Thinking In Java【P493】。 Ja ... -
hashcode的实现
2014-08-15 14:18 732ThinkinJava中给出了Effective Java的 ... -
验证Hashmap不支持同步,ConcurrentHashMap支持
2014-08-15 14:14 969一直都不知道concurrenthashmap有什么实际的用 ... -
Java 中的嵌套类可以访问Private
2014-07-18 10:54 611注意:Java中的嵌套类与C++中的嵌套类大致一致,只不过C ... -
简单的递归转非递归例子 Fibonacci
2014-07-11 14:41 811package org.vocano.java.tst.re ... -
Java中的缓存
2014-07-10 15:48 644原文链接:http://blog.sina.com.cn/s ... -
快速随机访问和可删除的数组
2014-06-06 16:03 613原文链接:http://www.blogjava.net/q ... -
广度优先 深度优先访问 树
2014-06-06 15:37 655public class Tst { sta ... -
类语句块
2014-03-31 15:49 545public class Snippet extends s ... -
字符串不同,hashcode可以相同
2014-03-31 15:22 738public class Snippet { publi ... -
基本的小程序
2014-03-25 14:45 752斐波那契数列。(Fibonacci) public cla ... -
Java中hashCode和equals方法的正确使用
2014-02-19 11:28 725面试题:新建一个类,这个类要作用hashmap的键值,问需要 ... -
一个字符串在另一个字符串中出现的次数
2013-12-13 17:09 685一个字符串在另一个字符串中出现的次数 pub ... -
Java hashcode
2013-09-25 16:19 748原文:http://www.ibm.com/develope ... -
java 没有无符号整数
2013-09-02 17:09 947由于Java的原始类型里没有无符号类型,如果你需要某个宽度的 ... -
数组操作
2013-06-24 16:28 6681 数组倒叙:Snippet181 写道 int[] ... -
write object, read object 不一定比自己parse快速,只是简单,可以扩展好
2013-05-13 17:19 776write object, read object 不一定比 ... -
java.lang.IllegalStateException
2013-04-17 18:34 1142在使用iterator的remove的时候出现了java.la ... -
函数返回值
2013-04-17 18:15 789现在代码的水平还是 ...
相关推荐
本教程聚焦于如何利用多线程实现串口(Serial Port)读写数据及文件的读写操作,这对于理解和开发高效通信系统至关重要。 首先,我们要理解什么是串口通信。串口通信是一种基于串行数据传输的通信方式,它通过一条...
C# AllenBradley读写操作PLC数据,C# 罗克韦尔读写操作PLC数据 使用一个开源的技术来读写罗克韦尔PLC数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持...
"西门子 SMI20 数据在线读写方法" 根据提供的文件信息,我们可以总结出以下知识点: 1. 西门子 Drive_CLIQ 编码器数据在线读写方法: * 使用 CU320 控制器、驱动单元和电脑软件 STARTER V4.4 配置在线读写数据。 ...
DM 数据守护与读写分离集群的使用涉及多个步骤,包括环境准备、集群配置、数据守护设置、读写分离策略配置等。开发工程师、测试工程师、技术支持工程师和数据库管理员都需要了解这些内容,以确保系统正确部署和高效...
西门子PLC数据读写测试工具是一款专为西门子(Siemens)PLC系列设计的应用程序,它涵盖了S7-200Smart、S7-300、S7-400、S7-1200以及S7-1500等型号的控制器。该工具的主要功能在于简化和优化对PLC内部数据的读取和写入...
当多线程环境对SQLite进行读写操作时,可能会引发数据竞争和并发问题,因此必须采取适当的同步策略来确保数据的一致性和完整性。 标题"**C#多线程读写sqlite**"涉及的主要知识点包括: 1. **多线程编程**:C#中的`...
数据图片读写器
CMOS(Complementary Metal-Oxide-Semiconductor)数据读写器是一款系统工具,主要用于在Windows 2000环境下读取和修改计算机系统中的CMOS存储器中的信息。CMOS是计算机主板上的一种特殊内存,它用于保存BIOS设置,...
这些软件通常用于调试、固件更新、故障排查和数据恢复等多个方面。它们能够与硬件接口通信,将数据传输到目标存储器中,或者从存储器中提取数据。 电视存储器读写器主要用于电视机的维修和升级,尤其是当电视机出现...
在这个"shardingsphere4.1.1版本主从读写分离组合数据脱敏功能demo"中,我们将探讨如何在实际应用中利用ShardingSphere实现这两个关键特性。 首先,让我们深入了解**读写分离**。在高并发的互联网应用中,为了提高...
《24C彩电数据读写软件:总线查询与数据管理详解》 在现代电子技术领域,24C系列的彩电数据读写软件扮演着至关重要的角色。这款最新的软件版本不仅支持对24C彩电的数据进行读取和写入操作,还集成了总线查询功能,...
VC++实现USB接口读写数据的程序 VC++实现USB接口读写数据的程序是一种使用VC++语言开发的程序,用于读写USB接口中的数据。在这个程序中,我们使用了SetupAPI函数来枚举和打开USB设备,然后使用设备接口来读写数据。...
多线程允许程序同时执行多个任务,这里意味着可以并发处理不同的数据块,显著提高了影像读写的速度。特别是在多核处理器系统上,多线程可以充分利用硬件资源,实现并行计算,加快处理速度。然而,多线程编程也需要...
为了处理不同地震道的数据,可能需要多个数组,每个数组对应一个道。 写入SGY文件的过程类似,但顺序相反。首先,创建并填充头信息,然后写入数据。`fwrite()`函数用于将内存中的数据写入文件。在写入头信息时,...
本篇文章将详细介绍如何利用Kepserver DXC来实现双PLC的数据读写,确保无缝链接。 首先,Kepserver DXC是Kepware开发的一个客户端工具,它支持OPC统一架构(UA)标准,能够与不同的PLC(可编程逻辑控制器)和其他...
解决百万级数据读写Excel问题的关键在于分批处理和选择合适的库。批量处理可以避免一次性加载所有数据到内存,减少内存占用。对于写入,我们可以将数据分割成小块,逐个写入不同的工作表或者同一个工作表的不同行...
同时,为了提高效率,可以使用多线程或异步I/O读写多个扇区。此外,对扇区的直接操作可能会影响系统稳定性,因此一般只在必要时进行。 对于文件系统,扇区数据的组织方式更为复杂。文件系统会在扇区上分布文件、...
本实例将探讨如何利用Spring Boot和MyBatis框架实现多数据源的读写分离。以下是关于这个主题的详细讲解。 1. **Spring Boot**:Spring Boot是由Pivotal团队提供的全新框架,旨在简化Spring应用的初始搭建以及开发...
MyBatis多数据源读写分离 MyBatis是一款流行的Java持久层框架,提供了许多强大的功能来简化数据库交互。在实际应用中,多数据源读写分离是非常常见的场景,今天我们就来讨论如何使用MyBatis实现多数据源读写分离。 ...