飘灵儿 发表于 2015-1-18 11:31:17

来看Java编程那些事儿90――粉饰流利用1

令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
11.3.3粉饰流利用
除依照流的偏向能够把流分别为输出流和输入流两类,依照流读写数据的基础单元把流分别为字撙节和字符流两类之外,还能够依照流是不是间接毗连实践数据源,比方文件、收集、字节数组等,将流又能够分别为实体流和粉饰流两年夜类。
个中实体流指间接毗连数据源的流类,如后面先容的FileInputStream/FileOutputStream和FileReader和FileWriter,该类流间接完成将数据源转换为流对象,在实体流类中完成了流和数据源之间的转换,实体流类都可独自举行利用。
而粉饰流指不间接毗连数据源,而是以别的流对象(实体流对象或粉饰流对象)为基本创建的流类,该类流完成了将实体流中的数据举行转换,加强流对象的读写才能,对照经常使用的有DataInputStream/DataOutputStream和BufferedReader/BufferedWriter等,粉饰流类不成以独自利用,必需共同实体流或粉饰流举行利用。
因为粉饰流都是在已有的流对象基本长进行创立的,以是这类创立流的体例被称作“流的嵌套”,经由过程流的嵌套,能够润色流的功效,比方使读写的速率增添大概供应更多的读写体例,便利数据格局的处置。
粉饰流不改动本来实体流对象中的数据内容,只是从实体流对象基本上创立出的粉饰流对象相对实体流对象举行了一些功效的加强。
流的嵌套是进修IO编程时必需把握的常识,利用它才可让你真正体味到IO类计划时的计划思绪,也能够便利的利用IO类。
上面分离以DataInputStream/DataOutputStream和BufferedReader/BufferedWriter为例子,具体先容粉饰类的利用。
11.3.3.1DataInputStream/DataOutputStream
在后面的示例中,在向流中写进的数据必需起首转换为byte数组或char数组,当写进的数据对照少、对照复杂时,则向流中写进数据时仍是不是很贫苦的,可是假如向流中写进数据对照多时,手动转换数据格局则会对照贫苦。固然,良多文件都是依据文件存储的必要计划了专门的存储格局,可是这些格局一样平常都对照庞大,必要浏览专门的格局文档才能够读写这些特定格局的文件。
为了简化程序员关于流的操纵,使得程序员能够从冗杂的数据格局中摆脱出来,在IO类中专门计划了两个类——DataInputStream/DataOutputStream类简化流数据的读写,利用这两个类,能够完成以加强型的读写办法读写数据,使得读写流的数据变得对照复杂。
在实践利用这两个类时,必需婚配起来举行利用。也就是说,只要利用DataOutputStream流格局写进的数据,在实践读取时才可使用DataInputStream举行读取。由于在利用DataOutputStream向流中写进数据时,除写进实践的数据内容之外,还写进了特定的数据格局,该格局关于程序员来讲是通明的,这类特定的格局不必要程序员熟习,而只必要利用DataInputStream读取便可,读取时的按次和写进时的按次和范例坚持分歧便可。
在DataInputStream类中,增添了一系列readXXX的办法,比方readInt、readUTF、readBoolean等等,而在DataOutputStream类中,也增添了一系列writeXXX的办法,比方writeInt、writeUTF、writeBoolean等等,使得关于数据的读写加倍便利很简单。
上面以读写文件为例子,演示DataInputStream/DataOutputStream类的基础利用。
/**

*摹拟必要存储到文件中的数据

*该类中保留4品种型的数据

*/

publicclassMyData{

 booleanb;

 intn;

 Strings;

 shortsh[];

 publicMyData(){}

 publicMyData(booleanb,intn,Strings,shortsh[]){

  this.b=b;

  this.n=n;

  this.s=s;

  this.sh=sh;

 }

}
<p>
JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。

admin 发表于 2015-1-21 09:21:52

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

山那边是海 发表于 2015-1-30 13:24:58

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

乐观 发表于 2015-2-6 12:41:42

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

老尸 发表于 2015-2-6 14:37:55

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

小女巫 发表于 2015-2-16 14:21:12

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

不帅 发表于 2015-2-16 23:25:24

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

海妖 发表于 2015-2-21 19:44:28

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

若天明 发表于 2015-2-22 02:44:55

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

谁可相欹 发表于 2015-3-6 22:28:39

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

仓酷云 发表于 2015-3-10 12:41:23

Java是一种计算机编程语言,拥有跨平台、面向对java

蒙在股里 发表于 2015-3-15 00:31:21

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

灵魂腐蚀 发表于 2015-3-21 15:11:59

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。

精灵巫婆 发表于 2015-3-25 10:45:35

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

简单生活 发表于 2015-4-1 13:11:26

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

因胸联盟 发表于 2015-4-14 06:21:43

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

爱飞 发表于 2015-4-16 20:11:47

是一种语言,用以产生「小应用程序(Applet(s))

飘灵儿 发表于 2015-4-23 02:31:39

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

柔情似水 发表于 2015-5-1 23:27:45

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
页: [1]
查看完整版本: 来看Java编程那些事儿90――粉饰流利用1