动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.java api之实现(上).
.JDO 是什么.
.一个正则表达式网站.
.Hibernate中的Middlegen入门指南.
.一个 Java 编程老手的设计语录.
.探索JDK1.5高级编码特征.
.WebSphere SAP适配器编程基础.
.使用Eclipse IDE创建统一开发环境.
.在Java SE中使用Hibernate处理数.
.J2EE指南.
.tan 方法.
.java中的格式化输出(类似C语言的.
.分享关于j2me xmlReader的轻量级.
.Java I/O 包中的Decor.
.Java线程入门教程.
.精确的浮点数运算(实际应用中经.
.有人看过2001 的书吗?.
.Netbeans IDE常见问题集锦.
.初学者如何开发出一个高质量的J2.
.JBPM源码分析(三)---Execut.

存取程序状态的几种方法——Java I/O应用杂谈

发表日期:2008-1-5 |



jungleford如是说

    已经有一个多月没有搭理blog了,原因很多,譬如实验室的项目正在收工,巨忙;譬如找工作及其相关的事情;而且二月份大部分时间是陪老爹老妈,家里拨号的速度可想而知……但主要还是没有找到一个合适的topic,或者说这段时间懒了(临毕业前期综合症),净在看《汉武大帝》和历史方面的书,还有其它乱七八糟的闲书,就是没有认真地玩Java,哈哈!现在工作差不多落实了,好在不算太烂,小资青年jungleford的生活又开始步入正轨了!以上是新年里的一些废话。    今天稍微聊一点关于“程序状态保存”方面的问题,我们很轻易就会想到“序列化”(Serialization,有的书上又翻译为“顺序化”或者“串行化”,但“串行”一词总是让我联想到通信和硬件接口,所以我更习惯于“序列化”的叫法,何况这种叫法是有来头的,后面我会谈到这个名称的由来),当然,序列化是一种方便有效的数据存取方式,但它还有更加广泛的应用。广义上讲,就是讨论一下I/O的一些应用。

文件I/O:文件流→序列化

★文件流    文件操作是最简单最直接也是最轻易想到的一种方式,我们说的文件操作不仅仅是通过FileInputStream/FileOutputStream这么“裸”的方式直接把数据写入到本地文件(像我以前写的一个扫雷的小游戏JavaMine就是这样保存一局的状态的),这样就比较“底层”了。
主要类与方法描述FileInputStream.read()从本地文件读取二进制格式的数据FileReader.read()从本地文件读取字符(文本)数据FileOutputStream.write()保存二进制数据到本地文件FileWriter.write()保存字符数据到本地文件
★XML    和上面的单纯的I/O方式相比,XML就显得“高档”得多,以至于成为一种数据交换的标准。以DOM方式为例,它关心的是首先在内存中构造文档树,数据保存在某个结点上(可以是叶子结点,也可以是标签结点的属性),构造好了以后一次性的写入到外部文件,但我们只需要知道文件的位置,并不知道I/O是怎么操作的,XML操作方式可能多数人也实践过,所以这里也只列出相关的方法,供初学者预先了解一下。主要的包是javax.XML.parsers,org.w3c.dom,javax.XML.transform。
主要类与方法描述DocumentBuilderFactory.newDocumentBuilder().parse()解析一个外部的XML文件,得到一个Document对象的DOM树DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument()初始化一棵DOM树Document.getDocumentElement(). appendChild()为一个标签结点添加一个子结点Document.createTextNode()生成一个字符串结点Node.getChildNodes()取得某个结点的所有下一层子结点Node.removeChild() 删除某个结点的子结点Document. getElementsByTagName()查找所有指定名称的标签结点Document.getElementById()查找指定名称的一个标签结点,假如有多个符合,则返回某一个,通常是第一个Element.getAttribute()取得一个标签的某个属性的的值Element.setAttribute()设置一个标签的某个属性的的值Element.removeAttribute()删除一个标签的某个属性TransformerFactory.newInstance().newTransformer().transform()将一棵DOM树写入到外部XML文件
★序列化    使用基本的文件读写方式存取数据,假如我们仅仅保存相同类型的数据,则可以用同一种格式保存,譬如在我的JavaMine中保存一个盘局时,需要保存每一个方格的坐标、是否有地雷,是否被翻开等,这些信息组合成一个“复合类型”;相反,假如有多种不同类型的数据,那我们要么把它分解成若干部分,以相同类型(譬如String)保存,要么我们需要在程序中添加解析不同类型数据格式的逻辑,这就很不方便。于是我们期望用一种比较“高”的层次上处理数据,程序员应该花尽可能少的时间和代码对数据进行解析,事实上,序列化操作为我们提供了这样一条途径。    序列化(Serialization)大家可能都有所接触,它可以把对象以某种特定的编码格式写入或从外部字节流(即ObjectInputStream/ObjectOutputStream)中读取。序列化一个对象非常之简单,仅仅实现一下Serializable接口即可,甚至都不用为它专门添加任何方法:
public class MySerial implements java.io.Serializable{  ...}
但有一个条件:即你要序列化的类当中,它的每个属性都必须是是“可序列化”的。这句话说起来有点拗口,其实所有基本类型(就是int,char,boolean之类的)都是“可序列化”的,而你可以看看JDK文档,会发现很多类其实已经实现了Serializable(即已经是“可序列化”的了),于是这些类的对象以及基本数据类型都可以直接作为你需要序列化的那个类的内部属性。假如碰到了不是“可序列化”的属性怎么办?对不起,那这个属性的类还需要事先实现Serializable接口,如此递归,直到所有属性都是“可序列化”的。
上一篇:初探Java类加载机制 人气:488
下一篇:从XML到Java代码的数据绑定之对象【来自JAVA家】 人气:462
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-11-22 CMS001 v2.2 bulid 081122 Beta
2008-11-22 腾讯小说小偷 v5.0 20081113
2008-11-22 iestore网上商店系统 v1.0.7.0
2008-11-22 GKEE CRM客户管理系统 v1.2
2008-11-22 shopd1网店系统 v1.3
2008-11-22 翎风个人主页管理系统 v1.5
2008-11-22 开良狗狗影视搜索小偷 v1.1
2008-11-22 XtreMedia
2008-11-22 互联网数据分享应用平台 v1.0.0
2008-11-21 傲游(Maxthon) 2.1.5 正式版
2008-11-21 Skype v3.8.0.188 Final
2008-11-21 AirPlay OpenAlpha 2008.11.20
2008-11-21 屏幕文字抓取工具 DWMouse1.3.510
2008-11-21 Vista一键还原(Vista Ghost)1.
2008-11-21 SP Photo Fix照片修改1.2破解版
2008-11-21 QQ腾讯聊天工具 v1.2正式版
2008-11-21 FlightTrack航班信息v1.0破解版
2008-11-21 RealPiano仿真钢琴1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成