仓酷云

标题: JAVA教程之Java中基础数据范例与流的操纵办法 [打印本页]

作者: 再现理想    时间: 2015-1-18 11:38
标题: JAVA教程之Java中基础数据范例与流的操纵办法
你说是sun公司对她研究的透还是微软?针对自己工具开发的.net性能上肯定会站上风的。数据|数据范例 Java中除二进制文件和利用文本文件外另有基于Data的数据操纵,这里的Data指的是Java的基础数据范例和String。基础数据范例包含byte、int、char、long、float、double、boolean和short。

  说到Java的基础数据范例必需谈到的两个类是DataInputStream和DataOutputStream。它们供应了对Java基础数据范例的操纵,可是这些办法现实上是在两个主要的接口中界说的DataInput和DataOutput,它们的功效就是把二进制的字撙节转换成Java的基础数据范例,同时还供应了从数据中利用UTF-8编码构建String的功效。有一个主要的类RandomAccessFile完成了DataInput和DataOutput两个接口使得他可以对文件同时举行写和读的操纵。

  在DataInputStream和DataOutputStream两个类中的办法都很复杂,基础布局为readXXXX()和writeXXXX()个中XXXX代表基础数据范例大概String。在这里未几报告,不外值得一提的是我们有需要读读java中unicode的编码划定规矩,在APIdoc中有对照具体的先容。一般我们的对象有良多都是由java的基础数据范例组成的,好比一团体的信息包含姓名,电子信箱,德律风号码和性别等。实在我们能够用DataInputStream中的办法和DataOutputStream中的办法依照必定的序列把数据写进流中再依照不异的序列把他们读掏出来,这就是我们本人完成的序列化,这能够用在数据传输中,好比在J2ME联网程序中利用序列化机制传输数据。上面我们看看怎样本人完成序列化,起首我们要有两个机关函数个中一个参数为空。

publicAccount()
{

}

publicAccount(StringuserName,Stringemail,intage,booleangender)
{
 this.userName=userName;
 this.email=email;
 this.age=age;
 this.gender=gender;
}

  当我们举行序列化的时分也很复杂,我们只是往DataOutputStream中依照按次写进对象的成员变量。比方:

publicvoidserialize(DataOutputStreamdos)throwsIOException
{
 dos.writeUTF(userName);
 dos.writeUTF(email);
 dos.writeInt(age);
 dos.writeBoolean(gender);
}

  当我们举行反序列化的时分则依照不异的按次从DataInputStream内里读取数据并赋值给成员变量。比方:

publicstaticAccountdeserialize(DataInputStreamdis)throwsIOException
{
 Accountaccount=newAccount();
 account.userName=dis.readUTF();
 account.email=dis.readUTF();
 account.age=dis.readInt();
 account.gender=dis.readBoolean();
 returnaccount;
}

  为了便于调试我们还供应一个toString()的办法打印出对象的实践信息。这是个好的习气。

publicStringtoString()
{
return"UserName="+userName+"Email="+email+"age="+age+"gender="+(gender?"male":"female");
}

  为了测试序列化我们编写上面的程序举行测试,代码对照复杂。

packagecom.j2medev.mingjava;
importjava.io.*;

publicclassTestDataIO
{
 publicstaticvoidmain(String[]args)throwsIOException
 {
  Accountaccount=newAccount("mingjava","eric.zhan@263.net",25,true);
  System.out.println("beforeserialization.........");
  System.out.println(account.toString());
  ByteArrayOutputStreambaos=newByteArrayOutputStream();
  DataOutputStreamdos=newDataOutputStream(baos);
  account.serialize(dos);
  DataInputStreamdis=newDataInputStream(newByteArrayInputStream(baos.toByteArray()));
  AccountsAccount=Account.deserialize(dis);
  System.out.println("afterserialization..........");
  System.out.println(sAccount.toString());
  dos.close();
  dis.close();
 }
}

packagecom.j2medev.mingjava;
importjava.io.*;

publicclassAccount
{
 privateStringuserName="";
 privateStringemail="";
 privateintage=0;
 privatebooleangender=false;

 publicAccount()
 {}

 publicAccount(StringuserName,Stringemail,intage,booleangender)
 {
  this.userName=userName;
  this.email=email;
  this.age=age;
  this.gender=gender;
 }

 publicvoidserialize(DataOutputStreamdos)throwsIOException
 {
  dos.writeUTF(userName);
  dos.writeUTF(email);
  dos.writeInt(age);
  dos.writeBoolean(gender);
 }

 publicstaticAccountdeserialize(DataInputStreamdis)throwsIOException
 {
  Accountaccount=newAccount();
  account.userName=dis.readUTF();
  account.email=dis.readUTF();
  account.age=dis.readInt();
  account.gender=dis.readBoolean();
  returnaccount;
 }

 publicStringtoString()
 {
  return"UserName="+userName+"Email="+email+"age="+age+"gender="+(gender?"male":"female");
 }
}

  编译运转程序在把持台输入:

beforeserialization.........
UserName=mingjavaEmail=eric.zhan@263.netage=25gender=male
afterserialization..........
UserName=mingjavaEmail=eric.zhan@263.netage=25gender=male

  序列化乐成!

j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。
作者: 再现理想    时间: 2015-1-21 11:50
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 谁可相欹    时间: 2015-1-25 09:38
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 精灵巫婆    时间: 2015-1-30 21:55
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者: 金色的骷髅    时间: 2015-2-4 07:00
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者: 变相怪杰    时间: 2015-2-9 18:18
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 乐观    时间: 2015-2-27 15:37
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 灵魂腐蚀    时间: 2015-2-28 05:27
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 小女巫    时间: 2015-3-9 21:20
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 只想知道    时间: 2015-3-12 22:19
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 愤怒的大鸟    时间: 2015-3-20 03:54
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者: 小魔女    时间: 2015-3-20 11:39
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 简单生活    时间: 2015-3-23 17:34
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 小妖女    时间: 2015-4-10 09:39
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 老尸    时间: 2015-4-14 22:29
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: admin    时间: 2015-4-18 05:50
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: 仓酷云    时间: 2015-4-19 06:51
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者: 因胸联盟    时间: 2015-4-21 23:08
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者: 透明    时间: 2015-4-23 15:13
Java 编程语言的风格十分接近C、C++语言。
作者: 分手快乐    时间: 2015-4-27 13:23
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2