Java14包基础范例.docx
- 文档编号:25432726
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:56
- 大小:35.98KB
Java14包基础范例.docx
《Java14包基础范例.docx》由会员分享,可在线阅读,更多相关《Java14包基础范例.docx(56页珍藏版)》请在冰豆网上搜索。
Java14包基础范例
Java.beans3
综合实例4
e1一个精简的bean4
e2实现绑定属性4
e3实现限制属性4
e4bean的实例化5
e5列出bean的所有属性名5
e6获取并设置bean的属性5
序列化6
e7将bean系列化为XML文档6
e8从XML文档反序列化bean7
e9防止bean属性被序列化为XML文档7
e10将不可改变的bean属性序列化为XML文档8
事件8
e11监听属性改变事件8
e12监听可否决的属性改变事件9
Java.io9
文件名和路径名9
e13创建文件名路径9
e14文件名路径和URL路径互相转换9
e15从相对文件名路径获取绝对文件名路径10
e16确定是否有两个文件名路径指向同一个文件10
e17得到文件名路径的上一层目录(相对目录文件的父目录返回null)10
e18确定文件名路径是文件还是目录11
文件11
e19建立文件11
e20得到文件的大小11
e21删除文件11
e22建立临时文件11
e23重命名文件或目录12
e24将文件或目录转移到另一个目录12
e25得到文件的大小//13.获取并设置文件或目录的修改时间12
e26强制将对文件的更新保存到磁盘-Use:
FileDescriptor.sync()12
目录13
e27获取当前工作目录13
e28创建目录13
e29删除空目录13
e30删除非空目录(用递归方法遍历目录)13
e31遍历目录13
e32列出目录下的文件或子目录14
e33列出目录下的特定条件的文件或子目录1(FilenameFilter)14
e34列出目录下的特定条件的文件或子目录2(FileFilter)14
e35列出文件系统的根目录15
读和写15
e36从标准输入流中读取文本15
e37从文件中读取文本15
e38将一个文件读入一个字节数组15
e39写入一个文件16
e40对一个文件进行添加16
e41使用一个随即访问文件16
编码17
e42读取UFT-8编码的数据17
e43写入UFT-8编码的数据17
e44读取ISOLatin-1编码的数据17
e45写入ISOLatin-1编码的数据17
序列化17
e46将一个对象序列化(本例序列化一个JButton)18
e47将一个对象反序列化(参考上例)18
e48实现一个单实例序列化(SerializableSingleton)18
Java.lang18
系统19
e49终止应用程序19
e50确定应用程序何时退出19
e51计算占用时间19
e52.加载本地代码19
e53实现一个可以排序的类------详见Object_Compare.java19
e54获取堆的大小20
e55列出所有系统属性20
获取并设置一个系统属性的值20
通过命令行设置一个系统属性的值20
对象21
e56将基本数据类型包装成对象21
e57复制一个对象21
e58对象的比较22
e59使用hashcode来比较对象值22
类23
e60.获取一个Class对象23
e61获取Class对象名23
e62确定一个Class对象是类还是接口24
e63确定类的加载位置(!
!
以下方法不能获得系统类的加载位置)24
字符串24
e64字符串的添加、插入、修改、替换、删除(用StringBuffer类)24
e65字符串比较25
e66确定一个字符串是否包含一个子串25
e67获取一个字符串中的子串26
e68在字符串中搜索一个字符或子串26
e69替换字符串中的字符26
e70将一个字符串转换大小写26
e71将一个基本类型转换成一个串27
e72.在Unicode和UTF-8之间转换27
e73确定一个字符的Unicode块27
e74确定一个字符串是否是一个合法的Java标识符27
数字28
将一个字符串转换成数字28
将一个数字解析和格式化为二进制、八进制、和十六进制28
数组28
将数组元素移位28
从一个数组向另一个数组复制元素(参考上例)29
命令29
通过命令行设置一个系统属性的值29
执行一条命令29
读取一条命令的输出29
将要求的输入送给一条命令30
线程30
创建一个线程1----extendsThread30
创建一个线程2----implementsRunnable30
终止一个线程31
确定一个线程何时结束31
暂停当前线程32
暂停一个线程32
确定当前线程是否持有一个同步锁33
允许带有活线程的应用程序退出33
用递归方法列出所有运行线程34
使用线程局部变量35
实现一个工作队列35
Java.lang.reflect35
对象数组(Array)36
确定一个对象是否是数组36
获取一个Array对象的基本元素类型36
获取一个Array对象的长度和维数36
建立一个数组36
扩充一个数组37
获取并设置Array对象的元素值37
Java.beans
这个包中包含了与JavaBean开发有关的类
综合实例
e1一个精简的bean
importjava.io.Serializable;
publicclassTestimplementsSerializable{
booleanprop;
publicTest(){}
publicbooleangetProp(){returnprop;}
publicbooleanisProp(){returnprop;}
publicvoidsetProp(booleannewValue){prop=newValue;}
}
e2实现绑定属性
importjava.io.Serializable;
importjava.beans.*;
publicclassTestimplementsSerializable{
intprop;
PropertyChangeSupportpcs=newPropertyChangeSupport(this);
publicvoidsetProp(intnewValue){
intoldValue=prop;
prop=newValue;
pcs.firePropertyChange("prop",newInteger(oldValue),newInteger(newValue));
}
publicsynchronizedvoidaddPropertyChangeListener(PropertyChangeListenerlis){
pcs.addPropertyChangeListener(lis);
}
publicsynchronizedvoidremovePropertyChangeListener(PropertyChangeListenerlis){
pcs.removePropertyChangeListener(lis);
}
publicTest(){}
}
e3实现限制属性
importjava.io.Serializable;
importjava.beans.*;
publicclassTestimplementsSerializable{
intprop;
java.beans.VetoableChangeSupportvcs=newjava.beans.VetoableChangeSupport(this);
publicvoidsetProp(intnewValue)throwsPropertyVetoException{
try{
vcs.fireVetoableChange("prop",newInteger(prop),newInteger(newValue));
prop=newValue;
}catch(PropertyVetoExceptionex){throwex;}
}
publicsynchronizedvoidaddVetoableChangeListener(VetoableChangeListenerlis){
vcs.addVetoableChangeListener(lis);
}
publicsynchronizedvoidremoveVetoableChangeListener(VetoableChangeListenerlis){
vcs.removeVetoableChangeListener(lis);
}
publicTest(){}
publicstaticvoidmain(String[]args){
Testtest1=newTest();
}
}
e4bean的实例化
try{
Testtest=(Test)Beans.instantiate(ClassLoader.getSystemClassLoader(),"Test");
}catch(ClassNotFoundExceptionex){
}catch(Exceptionex){}
e5列出bean的所有属性名
java.beans.BeanInfobi=java.beans.Introspector.getBeanInfo(Test.class);
java.beans.PropertyDescriptor[]pds=bi.getPropertyDescriptors();
for(inti=0;i }catch(java.beans.IntrospectionExceptionex){} //********out: int,double,classe.g. e6获取并设置bean的属性 publicclassTestimplementsSerializable{ privateStringprop1; privateintprop2; privatebyte[]prop3; publicTest(){} publicvoidsetProp1(Stringprop1){this.prop1=prop1;} publicStringgetProp1(){returnprop1;} publicvoidsetProp2(intprop2){this.prop2=prop2;} publicintgetProp2(){returnprop2;} publicvoidsetProp3(byte[]prop3){this.prop3=prop3;} publicbyte[]getProp3(){returnprop3;} publicstaticvoidmain(String[]args){ Objectobj=newTest(); try{ java.beans.Expressionexpr=newjava.beans.Expression(obj,"getProp1",newObject[0]); java.beans.Statementstmt=newjava.beans.Statement(obj,"setProp1",newObject[]{"newstring"}); expr.execute(); Strings=(String)expr.getValue();//getthevalueofprop1--String stmt.execute();//setthevalueofprop1--String expr=newjava.beans.Expression(obj,"getProp2",newObject[0]); expr.execute(); inti=((Integer)expr.getValue()).intValue();//getthevalueofprop2--int stmt=newjava.beans.Statement(obj,"setProp3",newObject[]{newInteger(123)}); stmt.execute();//setthevalueofprop2--int expr=newjava.beans.Expression(obj,"getProp3",newObject[0]); expr.execute(); byte[]bytes=(byte[])expr.getValue();//getthevalueofprop3--byte stmt=newjava.beans.Statement(obj,"setProp3",newObject[]{newbyte[]{0x12,0x23}}); stmt.execute();//setthevalueofprop3--byte[] }catch(Exceptionex){} } } 序列化 e7将bean系列化为XML文档 importjava.io.Serializable; importjava.beans.*; importjava.io.*; publicclassTestimplementsSerializable{ inti; intiarray[]=newint[0]; publicintgetProp(){returni;} publicvoidsetProp(inti){this.i=i;} publicint[]getProps(){returniarray;} publicvoidsetProps(int[]iarray){this.iarray=iarray;} publicstaticvoidmain(String[]args){ Testtest=newTest(); test.setProp (1); test.setProps(newint[]{1,2,3}); try{ XMLEncoderencoder=newXMLEncoder(newBufferedOutputStream( newFileOutputStream("outTest.xml"))); encoder.writeObject(test); encoder.close();//必须调用 }catch(FileNotFoundExceptionex){System.err.println(ex);} } } e8从XML文档反序列化bean XMLDecoderdecoder=newXMLDecoder(//(请参考上例) newBufferedInputStream(newFileInputStream("outTest.xml"))); Testtest=(Test)decoder.readObject(); decoder.close(); intprop=test.getProp(); int[]props=test.getProps(); e9防止bean属性被序列化为XML文档 importjava.io.Serializable; importjava.beans.*; importjava.io.*; publicclassTestimplementsSerializable{ inti; static{//***********让props共有属性的值不被保持transient try{ BeanInfoinfo=Introspector.getBeanInfo(Test.class); PropertyDescriptor[]pds=info.getPropertyDescriptors(); for(inti=0;i PropertyDescriptorpd=pds[i]; //让props共有属性的值不被保持transient if(pd.getName().equals("props")){pd.setValue("transient",Boolean.TRUE);} } }catch(IntrospectionExceptionex){} } intiarray[]=newint[0]; publicintgetProp(){returni;} publicvoidsetProp(inti){this.i=i;} publicint[]getProps(){returniarray;} publicvoidsetProps(int[]iarray){this.iarray=iarray;} publicstaticvoidmain(String[]args){ Testo=newTest(); o.setProp (1); o.setProps(newint[]{1,2,3}); try{ XMLEncoderencoder=newXMLEncoder(newBufferedOutputStream( newFileOutputStream("test.xml"))); encoder.writeObject(o); encoder.close(); }catch(FileNotFoundExceptionex){} } } e10将不可改变的bean属性序列化为XML文档 importjava.io.Serializable; importjava.beans.*; importjava.io.*; publicclassTestimplementsSerializable{ intprop; publicTest(){} publicTest(intprop){this.prop=prop;} publicintgetProp(){returnprop;} publicstaticvoidmain(String[]args){ Testo=newTest(123); try{ XMLEncoderencoder=newXMLEncoder(newBufferedOutputStream( newFileOutputStream("test.xml"))); String[]pName=newString[]{"prop"}; encoder.setPersistenceDelegate(Test.class,newDefaultPersistenceDelegate(pName)); encoder.writeObject(o); encoder.close(); }catch(FileNotFoundExceptionex){} } } 事件 e11监听属性改变事件 myBean.addPropertyChangeListener(newmyPropertyChangeListener()); classmyPropertyChangeListenerimplementsPropertyChangeListener{ //thismethodiscalledeverytimethepropertyvalueischanged publicvoidpropertyChange(PropertyChangeEventevt){ ObjectoldValue=evt.getOldValue(); ObjectnewValue=evt.getNewValue(); } } e12监听可否决的属性改变事件 myBean.addPropertyChangeListener(newmyVetoableChangeListener()); classMyVetoableChangeListenerimplementsVetoableChangeListener{ publicvoidvetoableChange(PropertyChangeEventevt)throwsPropertyVetoException{ ObjectoldValue=evt.getOldValue(); ObjectnewValue=evt.getNewValue(); //确定改变是否被否决,然后预防改变 booleanveto=false; if(veto){ thrownewPropertyVetoException("thereasonfortheveto",evt); } } } Java.io 该包包含三组主要的类和接口。 第一组是建立数据流的,第二组包含对象序列化的类和接口。 对象序列化是将一个对象状态转化成一个字节流的过程。 转换的方式是: 要求该字节流可以重新被转换成元对象的拷贝。 第三组是处理文件系统的。 文件名和路径名 e13创建文件名路径 Stringpath=File.separator+"a"+File.separator+"b"; System.out.println(path);//windows="\a\b";unix="/a/b" e14文件名路径和URL路径互相转换 Filefile=newFile("filename");//Createafileobject URLurl=null; try{//ConvertthefileobjectoaURL //Thefileneednotexist.Itismadeintoanabsolutepath url=file.toURL();//=file: /F: /Java/Example/IO/FilePathName/filename System.out.println(url.toString()); }catch(Exceptione){} try{//readthefilecontentsusingtheURL file=newFile(url.getFile());//ConverttheURLtoafileobject
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java14 基础 范例