Java资源及其利用课件_第1页
Java资源及其利用课件_第2页
Java资源及其利用课件_第3页
Java资源及其利用课件_第4页
Java资源及其利用课件_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java资源及其利用

Java资源及其利用Java的标准库结构语言包输入与输出包其他常用资源简介Java的标准库结构 Java有一个功能强大的资源库,通过类和类的继承机制将资源库中的资源组织起来。Java资源库中类的继承层次和包的组织呈树型结构,它将功能相关的类组织成包,使程序员可以很方便地使用资源库。常用的包java.lang包:主要含有与语言相关的类java.io包:主要含有与输入输出相关的类java.util包:包括许多具有特定功能的类,有Arrays、Date、Calendar和Stack等java.swing包:提供了创建图形用户界面元素的类包:含有与网络操作相关的类java.applet包:含有控制Hotjava

浏览器的类

Java资源的层次结构语言包基本对象类系统类包装类字符串类和缓冲串类数学类异常处理基本对象类Object类是所有Java类的祖先,它处于Java开发环境的类层次树的根部,所有其他类都是由Object类直接或间接派生出来的。如果一个类在定义的时候没有包含extends关键字,编译器会将其建为Object类的直接子类。Object类的常用方法方法说明protectedObjectclone()生成并返回当前对象的一个拷贝。publicboolean

equals(Objectobj)比较两个对象是否相同,结果为一布尔值。publicfinalClassgetClass()返回一个对象在运行时所对应的类的表示,从而可以得到相关的类的信息。protectedvoidfinalize()throwsThrowable定义回收当前对象时所需完成的清理工作。publicStringtoString()返回描述当前对象的字符串信息。Object类的方法的个例classObjectExam{publicstaticvoidmain(String[]args){ Integera=newInteger(1); Integerb=newInteger(1); Rectanglec=newRectangle(20,5);

System.out.println(a.equals(b));

System.out.println("TheObject'sclassis:"+a.getClass());

System.out.println(c.toString()); /*toString()方法返回的是该对象所对应的类名、一个@符号和 一个该对象的hash码的无符号十六进制描述。用户通过重载 toString()方法可以适当地显示对象的信息以进行调试。*/ }}系统类System类(SystemClass)是一个功能强大、极其有用的特殊的类,它提供了标准输入、标准输出和标准错误输出;对系统信息的存取;快速拷贝数组元素等等机制System类由publicfinal修饰,该类不能被实例化(即不能创建System类的对象)或派生子类。System类中包含了许多有用的类变量和类方法(由static修饰)System类的变量及其说明类变量说明publicstaticfinalPrintStream

err

标准错误输出流。publicstaticfinalInputStream

in

标准输入流。

publicstaticfinalPrintStream

out

标准输出流。System类常用的方法及其说明方法说明publicstaticvoidarraycopy(Object

src,int

src_position,Objectdst,int

dst_position,intlength)拷贝一个数组到另一个数组,它从源数组的指定位置开始,拷贝到目标数组的指定位置。publicstaticlongcurrentTimeMillis()返回从时间1970年1月1日00:00:00时起到当前所历经的毫秒数(通常用来比较两事件发生的前后时间差)。publicstaticvoidexit(int

status)退出Java当前运行的虚拟机。publicstaticvoidgc()运行垃圾回收器。publicstaticStringgetProperty(String

key)获取由给定的key确定的系统属性值。publicstaticvoidsetErr(PrintStreamerr)重定向标准错误输出设备。publicstaticvoidsetIn(InputStreamin)重定向标准输入设备。publicstaticvoidsetOut(PrintStreamout)重定向标准输出设备。publicstaticString

setProperty(String

key,String

value)设置由key指定的系统属性为指定的

value的值。System类的常用属性列表系统属性名称(key的取值)含义"file.separator"文件分隔符"java.class.path"Java类路径"java.class.version"Java类的版本编号"java.home"Java的安装目录"java.version"Java的版本编号"os.arch"操作系统的体系结构""操作系统名"os.version"操作系统版本"line.separator"行分隔符"path.separator"路径分隔符"user.dir"用户当前目录"user.home"用户主目录""用户名System类的例子publicclassSystemDemo{publicstaticvoidmain(String

args[])throwsException{charc;

System.out.println("请输入一个字符:");c=(char)System.in.read();

System.out.println("你输入了:"+c);

System.out.println("System.currentTimeMillis()="+System.currentTimeMillis());

System.out.println("java.version="+System.getProperty("java.version"));

System.out.println("java.home="+System.getProperty("java.home"));

System.out.println("="+System.getProperty(""));

System.out.println("java.class.path="+System.getProperty("java.class.path"));

System.out.println("user.home="+System.getProperty("user.home"));

System.out.println("user.dir="+System.getProperty("user.dir"));

System.out.println("="+System.getProperty(""));

System.out.println("="+System.getProperty(""));

System.out.println("os.arch="+System.getProperty("os.arch"));

System.out.println("os.version="+System.getProperty("os.version"));

System.out.println("file.separator="+System.getProperty("file.separator"));

System.out.println("path.separator="+System.getProperty("path.separator"));}}包装类为确保Java语言的纯面向对象特性,java.lang包为基本数据类型提供了一些对象封装。在Java中,数据类型包装类(typewrapperclass)用于封装基本数据类型的有关信息和操作数据类型包装类是由多个类组成的一个集合,每种基本数据类型均存在相应的对象封装类包装类及其对应的基本数据类型基本数据类型数据类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean包装类的一些共同的方法方法说明publicStringtoString()返回数据类型包装类中所保存数据的字符串表示形式。publictypetypeValue()返回数据类型包装类的相关基本类型值。publicboolean

equals(Object

obj)由于数据类型包装类不能直接用等号来进行比较,因此需要用到这个方法。数据类型包装类的例publicclassExam{publicstaticvoidmain(String

args[]){ //构造方法

Integera=newInteger(1); Booleanb=newBoolean(true); Floatf=newFloat(-2.4); Doubled=newDouble(1.4); Characterch=newCharacter('A'); Characterch2=newCharacter('A'); //方法

inti=Value(); charc=ch.charValue();

System.out.println(i);

System.out.println(b.booleanValue());

System.out.println(f.floatValue());

System.out.println(d.doubleValue());

System.out.println(c); System.out.println(ch.equals(ch2));

System.out.println(d.toString());}}Character类Character类的继承树是:

java.lang.Object | +java.lang.Character它的构造方法很简单:

publicCharacter(char

value)Character类的一些常用方法及其说明方法说明publicstaticboolean

isLowerCase(char

ch)如果ch是小写,则返回true,否则返回false。publicstaticboolean

isUpperCase(char

ch)如果ch是大写,则返回true,否则返回false。publicstaticboolean

isDigit(char

ch)如果ch是数字,则返回true,否则返回false。publicstaticboolean

isLetter(char

ch)如果ch是字母,则返回true,否则返回false。publicstaticchartoLowerCase(char

ch)返回给定字母ch对应的小写形式。publicstaticchartoUpperCase(char

ch)返回给定字母ch对应的大写形式。publicstaticint

digit(char

ch,int

radix)根据radix指明的基数,返回ch所对应的数值。Character类的应用示例publicclassCharacterExam{publicstaticvoidmain(String

args[]){ //构造方法

Characterch=newCharacter('s');charc=ch.charValue(); //方法

if(Character.isUpperCase(c))

System.out.println("Thecharacter"+c+"isuppercase.");else

System.out.println("Thecharacter"+c+"islowercase.");

booleanb=Character.isDigit(c);

intx=Character.digit('c',16);//十六进制中,c代表12。

System.out.println("b="+b);

System.out.println("x="+x);}}Integer类Integer类的继承树是:

java.lang.Object | +--java.lang.Number | +--java.lang.IntegerInteger类有两种构造方法:

⑴publicInteger(int

value) ⑵publicInteger(String

s)throwsNumberFormatExceptionInteger类的常用类变量及其说明类变量说明publicstaticfinalint

MAX_VALUE规定了int类型的最大值。publicstaticfinalint

MIN_VALUE规定了int类型的最小值。Integer类的常用方法及其说明方法说明publicstaticint

parseInt(String

s)throwsNumberFormatException将字符串s转换为带符号十进制整数,结果为int量。publicstaticIntegervalueOf(String

s)throwsNumberFormatException将字符串s转换为一个Integer对象,该对象对应的int数值与字符串表示的数值一致。Integer类的应用示例publicclassIntegerExam{publicstaticvoidmain(String

args[]){ //构造方法

Integera=newInteger(1); Integera2=newInteger(“1”); //方法

inti=Value();

inti2=Integer.valueOf("111").intValue();

inti3=Integer.parseInt("888");

System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println(a.equals(a2)); bytelargestByte=Byte.MAX_VALUE; shortlargestShort=Short.MAX_VALUE;

int

largestInteger=Integer.MAX_VALUE;

int

smallestInteger=Integer.MIN_VALUE;longlargestLong=Long.MAX_VALUE;floatlargestFloat=Float.MAX_VALUE;doublelargestDouble=Double.MAX_VALUE;

System.out.println("Thelargestbytevalueis"+largestByte);

System.out.println("Thelargestshortvalueis"+largestShort);

System.out.println("Thelargestintegervalueis"+largestInteger);

System.out.println("Thesmallestintegervalueis"+smallestInteger);

System.out.println("Thelargestlongvalueis"+largestLong);

System.out.println("Thelargestfloatvalueis"+largestFloat);

System.out.println("Thelargestdoublevalueis"+largestDouble);}}字符串与各种数据类型之间的转化publicclassTransformExam{publicstaticvoidmain(String

args[]){ //字符串与整型之间的转化

Integera=newInteger(1); Strings=a.toString();

System.out.println("s="+s);

inti=Integer.parseInt("888");

inti2=Integer.valueOf("666").intValue();

System.out.println("i="+i); System.out.println("i2="+i2); //字符串与浮点数之间的转化

Doublex=newDouble(1.7); Strings2=x.toString(); System.out.println("s2="+s2); doubled=Double.valueOf("12.3").doubleValue(); floatf=Float.valueOf("-.3").floatValue();

System.out.println("d="+d);

System.out.println("f="+f);}}字符串类和缓冲串类java.lang包中专门提供了两个类

String

StringBuffer

来处理字符串,前者用来处理创建之后不会再做修改和变动的字符串,后者则用来处理创建之后允许再做修改和变动的字符串。这两个类共同的特点是都不能再派生子类String类String类描述了字符串,所有Java程序中的字符串字面量,是作为该类的实例来实现的String类的继承树是:

java.lang.Object | +--java.lang.StringString类提供的构造方法publicString();publicString(charchars[]);publicString(charchars[],int

startIndex,int

numChars);publicString(String

value)publicString(StringBuffer

buffer)

String类的常用方法及其说明方法说明publicint

length()返回当前字符串的长度。publicStringtoLowerCase()将当前字符串中的所有大写字母转换为小写。publicStringtoUpperCase()将当前字符串中的所有小写字母转换为大写。publicStringtrim()去掉当前字符串中的前导空格和末尾的空格。publicStringsubstring(int

beginIndex)返回当前字符串中从beginIndex位置开始到末尾的子串。publicStringsubstring(int

beginIndex,int

endIndex)返回当前字符串的子串,该子串由beginIndex(包含在内)和endIndex(不包含在内)之间的字符组成。publicStringreplace(char

oldChar,char

newChar)将当前字符串中的所有出现的oldChar用newChar替换,生成一个新字符串。publiccharcharAt(int

index)返回指定索引位置上的字符。索引范围在0与length()-1之间。publicvoidgetChars(int

srcBegin,int

srcEnd,char

dst[],int

dstBegin)将当前字符串的部分字符拷贝到目标字符数组dst中。部分字符是指此字符串中从srcBegin(包含在内)到srcEnd(不包含在内)之间的字符。拷贝到目标字符数组中的字符从dstBegin位置开始存放。publicboolean

equals(ObjectanObject)将当前字符串与指定对象比较,如果两者具有相同的长度和字符,则返回true,否则返回falsepublicboolean

equalsIgnoreCase(StringanotherString)将当前字符串与指定对象比较,忽略大小写的区别。如果两者相等,则返回true,否则返回false。publicint

compareTo(StringanotherString)将当前字符串与anotherString进行比较,返回一个大于、等于或小于0的整数。此整数值决定于此字符串是大于、等于还是小于anotherString字符串。publicchar[]toCharArray()将当前字符串转换成一个字符数组。publicbyte[]getBytes()将当前字符串转换成一个字节数组。publicboolean

startsWith(Stringprefix)判断当前字符串是否由指定的前缀prefix开始。publicboolean

endsWith(Stringsuffix)判断当前字符串是否以指定的后缀

suffix结束。publicint

indexOf(int

ch)返回当前字符串中第一次出现指定字符ch的位置,如果未找到则返回-1。publicint

lastIndexOf(int

ch)返回当前字符串中最后一次出现指定字符ch的位置,如果未找到则返回-1。String类的常用方法示例publicclassStringDemo{publicstaticvoidmain(String

args[]){ //常用方法

Strings="Hello"; //Hello前后各有2个空格

System.out.println("s.length()="+s.length());

System.out.println("s.toLowerCase()="+s.toLowerCase());

System.out.println("s.toUpperCase()="+s.toUpperCase());

System.out.println("s.trim()="+s.trim());System.out.println("s.substring(5)="+s.substring(5));System.out.println("s.substring(3,5)="+s.substring(3,5));Stringnews=s.replace('l','t');//将s中所有的'l'替换为't'以生成新串

System.out.println("replaceall'l'with't':"+news);Stringcde="cde";

System.out.println("abc"+cde); /*提取字符:提取一个字符,可以使用charAt方法;

如需提取多个字符,可以使用getChars方法*/

System.out.println("提取字符的结果:");charc=s.charAt(3);

System.out.println(c);charbuf[]=newchar[4];s.getChars(1,5,buf,0);

System.out.println(buf); //字符串比较

System.out.println("字符串比较的结果:");Strings1="Hello";Strings2="Hello";Strings3="HELLO";

System.out.println(s1+"equals"+s2+"->"+s1.equals(s2));System.out.println(s1+"equals"+s3+"->"+s1.equals(s3));System.out.println(s1+"equalsIgnoreCase"+s3+"->"+s1.equalsIgnoreCase(s3));System.out.println(s1+"compareTo"+s2+"->"+pareTo(s2));Strings4="LemonTree";System.out.println(s4.startsWith("Lemon"));System.out.println(s4.endsWith("Tree"));System.out.println(s4.endsWith("tree")); //字符串检索

System.out.println("字符串检索的结果:");

System.out.println("字符e第一次出现的位置为:"+s4.indexOf('e'));

System.out.println("字符e最后一次出现的位置为:"+s4.lastIndexOf('e'));}}StringBuffer类StringBuffer类用于处理可变的字符串,StringBuffer对象的内容是可以扩充和修改的。当生成一个StringBuffer对象后,也可以通过调用toString()方法将其转换为String对象。StringBuffer类的继承树是:

java.lang.Object | +--java.lang.StringBufferStringBuffer类提供了三个构造方法publicStringBuffer()publicStringBuffer(int

length)publicStringBuffer(Stringstr)StringBuffer类的常用方法及其说明方法说明publicStringBuffer

append(type

typeObjectName)将指定的参数对象转化成String,然后追加到当前StringBuffer对象的末尾。publicStringBuffer

insert(int

offset,type

typeObjectName)用来在当前StringBuffer对象的指定位置插入由参数对象转化而得的String内容。PublicStringBuffer

delete(int

start,int

end)删除当前StringBuffer对象的子串,该子串中字符的位置由start开始,到end–1结束。publicStringBuffer

replace(int

start,int

end,String

str)将由start开始,到end–1结束的位置处的字符序列用str来替代。publicStringBuffer

reverse()倒置当前StringBuffer对象中的字符序列。publicvoidsetCharAt(int

index,char

ch)用指定字符ch替换由index指定的位置处的字符。publicStringtoString()将一个可变字符串转化为一个不变字符串。publicint

length()返回当前StringBuffer对象的长度(字符数目)。publicint

capacity()返回当前StringBuffer对象的整个容量。StringBuffer类的常用方法示例classStringBufferDemo{publicstaticvoidmain(String

args[]){ //构造方法

StringBuffers0=newStringBuffer();

StringBuffers1=newStringBuffer(512);

StringBuffers2=newStringBuffer("Hello!");//测试长度和容量

System.out.println("s0.length()="+s0.length());System.out.println("s0.capacity()="+s0.capacity());System.out.println("s1.length()="+s1.length());System.out.println("s1.capacity()="+s1.capacity());System.out.println("s2.length()="+s2.length());System.out.println("s2.capacity()="+s2.capacity());//替换、删除和倒置

StringBuffers=newStringBuffer("LenonTree");s.setCharAt(2,'m');

System.out.println("s="+s);System.out.println(s.replace(0,5,"Apple"));System.out.println(s.delete(0,5));

System.out.println("s.reverse()="+s.reverse()); //追加和插入各种类型的数据

StringBuffer

st=newStringBuffer("eacher!");

booleanb=true;charc='T';doubled=3.14159;chare=',';charf[]={'W','e','l','c','o','m','e','!'};charg='!';

System.out.println("insertachar:"+st.insert(0,c));st.insert(0,e);

System.out.println("insertadouble:"+st.insert(0,d));st.insert(0,g);

System.out.println("insertaArray:"+st.insert(0,f));

System.out.println("appendachar:"+st.append(c));

System.out.println("appendaarray:"+st.append(d));

System.out.println("appendaboolean:"+st.append(b)); }}数学类java.lang.Math类是标准的数学类,提供了两个数学常量和若干实现基本的数学操作的方法。与System类相似,java.lang.Math类也不能被子类化或实例化,它的所有方法和变量也都是静态的。Math类的继承树是:

java.lang.Object | +--java.lang.MathMath类的类变量及其说明类变量说明publicstaticfinaldoubleE最接近自然对数的底(e)的double值。publicstaticfinaldoublePI最接近圆周率(

)的double值。Math类的常用方法及其说明方法说明publicstaticdoublesin(double

a)返回角度a(以弧度为单位)的sin值。publicstaticdoublecos(double

a)返回角度a(以弧度为单位)的cos值。publicstaticdoubletan(double

a)返回角度a(以弧度为单位)的tan值。publicstaticdoubleasin(double

r)返回sin值为r的角度值。publicstaticdoubleacos(double

r)返回cos值为r的角度值。publicstaticdoubleatan(double

r)返回tan值为r的角度值。publicstaticdoublepow(double

a,double

b)返回a的b次方,结果为double型。publicstaticdoublesqrt(double

a)返回a的平方根,结果为double型。publicstaticdoubleexp(double

a)返回

ea。publicstaticdoublelog(double

a)返回a的自然对数,即ln

a。publicstaticdoubleceil(double

a)返回不小于(即大于或等于)参数a的最小整数,结果为double型。publicstaticdoublefloor(double

a)返回不大于(即小于或等于)参数a的最大整数,结果为double型。publicstaticdoublerint(double

a)返回最接近参数a的整数,结果为double型。publicstaticlonground(double

a)返回最接近参数a的long值。publicstaticint

round(float

a)返回最接近参数a的int值。publicstaticdoublerandom()返回一个大于等于0.0且小于1.0的随机数。publicstatictypeabs(type

a)返回a的绝对值。type可以为int、long、float和double型。结果类型与参数的相同。publicstatictypemax(

typea,type

b)返回a和b的最大值。type可以为int、long、float和double型。结果类型与参数的相同。publicstatictypemin(type

a,type

b)返回a和b的最小值。type可以为int、long、float和double型。结果类型与参数的相同。Math类的常用方法示例classMathDemo{publicstaticvoidmain(String

args[]){ //常量

System.out.println("Math.E="+Math.E);

System.out.println("Math.PI="+Math.PI); //三角函数和反三角函数

System.out.println("sin(pi/2)="+Math.sin(Math.PI/2));System.out.println("asin(1)="+Math.asin(1)); //舍入

System.out.println("ceil(E)="+Math.ceil(Math.E));

System.out.println("floor(E)="+Math.floor(Math.E));

System.out.println("rint(PI)="+Math.rint(Math.PI));

System.out.println("round(PI)="+Math.round(Math.PI)); //求出1~10之间的一个随机数

inti=(int)(Math.random()*10)+1;

System.out.println("i="+i); //其他常用方法

System.out.println("exp(1)="+Math.exp(1));

System.out.println("lnE="+Math.log(Math.E));

System.out.println("sqrt("+25+")="+Math.sqrt(25));

System.out.println("power("+2+","+8+")="+Math.pow(2,8));System.out.println("abs(-8.2)="+Math.abs(-8.2));

System.out.println("max("+2+","+8+")="+Math.max(2,8));

System.out.println("min("+2+","+8+")="+Math.min(2,8));}}异常处理“异常”(又叫“例外”)指的是程序运行时出现的非正常情况。用任何一种计算机语言设计的程序在运行时都可能出现各种错误。常见的错误有:除数为0、文件不能打开、数组下标越界、内存不够等。有些错误是可以预料的、有些错误则是不可预料的。对于上述运行中的错误,计算机系统中通常采取两种处理办法:

⑴由计算机系统本身直接检测,遇错则终止程序的运行。

⑵由程序员在程序设计过程中检测、显示提示信息并处理。Java中异常层次结构类Throwable有两个直接子类Error类及其子类描述的是java将字节码装入内存的过程中和对字节码进行检查的过程中遇到的问题、java的内部错误、资源耗尽的情况Exception类对象是由Java程序处理或抛出的对象。它有各种不同的子类分别对应于不同类型的异常。其子类可分成两部分:运行时异常类和其余的异常类(一般叫非运行时异常或检查型异常)常见的运行时异常java.lang.ArithmeticException

java.lang.ArrayIndexOutOfBoundsExceptionjava.lang.StringIndexOutOfBoundsException

java.lang.ClassCastExceptionjava.lang.NegativeArraySizeException检查型异常

Exception的子类中除了运行时异常以外的部分称为检查型异常。若在程序中使用的方法会抛出检查型异常,则Java编译器要求用户在程序中必须要捕获处理或声明抛出这些异常,javac会对用户程序是否处理了检查型异常进行检查,若未处理则编译不能通过常见的检查型异常包java.lang中声明的标准检查型异常包java.io中声明的标准检查型异常包中声明的标准检查型异常包java.lang中声明的标准检查型异常ClassNotFoundException

CloneNotSupportedException

IllegalAccessExceptionInstantiationException

InterruptedException包java.io中声明的标准检查型异常java.io.EOFException

java.io.FileNotFoundException

java.io.InterruptedIOException

java.io.UTFDataFormatException包中声明的标准检查型异常.MalformedURLException.ProtocolException

.SocketException

.UnknownHostException.UnknownServiceException运行时异常的例子classExceptionDomo2{publicstaticvoidmain(String

args[]){

inta[]=newint[-1];}}检查型异常的例子importjava.io.*;classExceptionDomo1{publicstaticvoidmain(String

args[]){ Strings=("Hello!");

FileWriterf0=newFileWriter("file1.txt"); f0.write(s); f0.close();}}异常的捕获处理和抛出一般来说,有两种对待异常的方式:

1、在方法内部捕获并处理该异常;

2、在本方法内不处理该异常,而是将异常抛给方法的调用者,由调用者决定如何处理异常。捕获并处理异常try{ //要监视(可能会出现异常)的程序块}catch(ExceptionType1e){ //对ExceptionType1对象的处理}catch(ExceptionType2e){ //对ExceptionType2对象的处理}finally{ //最终处理语句}匹配的catch子句Java运行时系统从上到下分别对每个catch子句处理的异常类型进行检测,直到找到与抛出的异常类型相匹配的catch子句为止。当且仅当出现下面三种情况时,catch子句中的参数才被认为是与被抛出的异常情况相匹配的:①参数与被抛出的异常同属于一个类;②参数是被抛出的异常的超类;③参数是一个接口,被抛出的异常类实现了这个接口。抛出异常利用try–catch–finally结构,可以对生成的异常进行处理。但在有些情况下,如果在一个方法中生成了一个异常,但是这一方法并不确切地知道该如何对这一异常事件进行处理,这时,该方法就可以声明抛弃异常,使得异常对象从调用栈向后传播,直到有合适的方法捕获它为止。声明方法可能抛出的异常具体做法是在方法头中用throws子句列出可能抛出的异常类。例如,

publicintread()throwsIOException{

}在设计方法时应当在方法头部列出可能抛出的检查型异常用throw语句抛出异常抛出异常首先要生成异常对象,生成异常对象是通过throw语句实现的。可以抛弃的异常必须是Throwable或其子类的实例。在方法体内遇到异常时用throw语句抛出异常对象。throw语句的格式为:

throw异常类的对象引用自定义异常用户自己的异常类必须声明为Throwable的子类。用户的异常类继承标准异常类中的任何一个均可。常见的做法是:用户的异常类继承Exception类。这样Java就会将定义的异常类视为检查型异常,使自定义异常起到应有的作用。自定义的异常类,一般只要声明两个构造方法,一个是不用参数的,另一个以字符串为参数。作为构造方法参数的字符串应当反映异常的根源。异常处理的例子classMyExceptionextendsException{ //自定义异常类

MyException(){super();}

MyException(Strings){super(s);}}classTryAndCatchA{staticint

demoThrow(Strings)throwsMyException{ //在方法头中声明抛出异常

if(s.equals("welcome")){

System.out.println(s);}if(s.equals("bug")){thrownewMyException("abug");//在方法中抛出异常

}returns.length();}publicstaticvoidmain(String[]args){for(inti=0;i<args.length;i++){try{

demoThrow(args[i]);

System.out.println("");}

catch(MyExceptione){

System.err.println("demoThrow(\""+args[i]+"\")抛出了类型为"+e.getClass()+",异常内容为"+e.getMessage()+"的异常.");}finally{System.out.println("cleanup...");}}}}输入与输出包文件类流总介文件的输入输出流随机访问文件类产生文本文件文件类java.io包中定义了一个File类来专门处理文件,并获取文件的有关信息。Java语言中通过File类来建立与磁盘文件的联系。File类的继承树是:

java.lang.Object | +--java.io.FileFile类三种构造方法publicFile(String<pathname>)publicFile(String<path>,String<filename>)publicFile(File<directory>,String<filename>)File类的常用方法及其说明方

法说

明publicboolean

exists()判断文件(或者目录)是否存在。publicboolean

isDirectory()判断该File对象是否是目录。publicboolean

isFile()判断该File对象是否是文件。publicboolean

canRead()判断文件是否可读。publicboolean

canWrite()判断文件是否可写。publicboolean

isHidden()测试当前对象是否是隐藏文件(或目录)。publicStringgetName()返回文件(或者目录)的名字。publicStringgetPath()返回文件(或者目录)的路径。publicStringgetAbsolutePath()返回文件(或者目录)的绝对路径。publiclonglength()返回文件的长度(以字节为单位)。publiclonglastModified()获得文件最后一次修改的时间。publicString[]list()返回目录下的文件及子目录名列表。publicboolean

createNewFile()throwsIOException自动创建一个新的空文件,要求该文件名未曾使用过。publicboolean

mkdir()创建当前目录的子目录。publicboolean

delete()删除当前文件或目录。publicboolean

renameTo(Filedest)为文件重新命名。publicboolean

setReadOnly()将文件(或者目录)设置为只读。File类的例子importjava.io.*;classTestFile{publicstaticvoidmain(String[]args)throwsException{if(args.length!=1){ System.err.println("请输入一个参数!"); System.exit(-1);}Filefile=newFile(args[0].trim()); //利用命令行参数创建File类的对象

if(file.exists()){ //如果文件对象存在

if(file.isFile()){ //如果是文件

System.out.println("File

Name:"+file.getName());

System.out.println("Path:"+file.getPath());

System.out.println("Abs.Path:"+file.getAbsolutePath());

System.out.println("Writable:"+file.canWrite());

System.out.println("Readable:"+file.canRead());

System.out.println("Length:"+(file.length())+"B");} elseif(file.isDirectory()){//如果是目录

String[]s=file.list();

System.out.println("Thereare"+s.length+"objects."); for(inti=0;i<s.length;i++)

System.out.println(s[i]); } }elsefile.mkdir(); //如果文件对象不存在

}}流总介流可以被理解为一条“导管”。这条“导管”有两个端口:一端与数据源(当输入数据时)或数据宿(当输出数据时)相连,另一端与程序相连。在与数据源或数据宿相连的端口,“导管”在读写数据时能够应付数据源和数据宿的多样性,消化掉因数据源和数据宿的多样性带来的数据读/写的全部复杂性;而在与程序相连的端口,“导管”提供了输入/输出的统一操作界面。输入流的示意图输出流的示意图流的读/写操作过程读

(Reading)操

作功

能打开数据流创建流类对象,并连接到输入源。读数据从流中读入数据序列。关闭数据流关闭流,释放相关的系统资源。写

(Writing)操

作功

能打开数据流创建流类对象,并连接到输出目的地。写数据从流中输出数据序列。关闭数据流关闭流,释放相关的系统资源。

Java流总图节点流总表节点类型字符流字节流Memory(内存)CharArrayReaderCharArrayWriterByteArrayInputStreamByteArrayOutputStreamStringReaderStringWriterStringBufferInputStreamPipe(管道)PipedReaderPipedWriterPipedInputStreamPipedOutputStreamFile(文件)FileReaderFileWriterFileInputStreamFileOutputStream文件的输入输出流节点流过滤流节点流文件输入流FileInputStream

文件输出流FileOutputStream

文件输入流FileInputStream

FileInputStream类的继承树为:

java.lang.Object | +--java.io.InputStream | +--java.io.FileInputStreamFileInputStream类常用的两种构造方法publicFileInputStream(File

file)throwsFileNotFoundException

publicFileInputStream(String

name)throwsFileNotFoundExceptionFileInputStream有三种read方法publicintread()throwsIOException

publicint

read(byte[]

b)throwsIOException

publicint

read(byte[]

b,int

off,int

len)throwsIOException

FileInputStream类常用方法及其说明方法说明publicint

available()throwsIOException返回可读入的字节数。publicvoidclose()throwsIOException关闭输入流,并释放任何与该流有关的资源。publicint

read()从输入流中读取一个字节的数据。publicint

read(byte[]b)将数据读入到一个字节数组中。publicint

read(byte[]b,intoff,int

len)将指定个数的数据读入到一个字节数组中。publiclongskip(long

n)throwsIOException跳过输入流上的n个字节。文件输出流FileOutputStream

FileOutputStream类的继承树为:

java.lang.Object | +--java.io.OutputStream | +--java.io.FileOutputStreamFileOutputStream类提供的构造方法publicFileOutputStream(File

file)throwsIOExceptionpublicFileOutputStream(String

name)throwsFileNotFoundExceptionpublicFileOutputStream(String

name,boolean

append)throwsFileNotFoundExceptionFileOutputStream类有三种write方法publicvoidwrite(int

b)throwsIOExceptionpublicvoidwrite(byte[]

b)throwsIOExceptionpublicvoidwrite(byte[]

b,int

off,int

len)throwsIOExceptionFileOutputStream类的常用方法及其说明

方法说明publicvoidclose()throwsIOException关闭输出流,并释放任何与该流有关的资源。protectedvoidfinalize()throwsIOException当收集到无用信息时,关闭该流。publicvoidwrite(intb)将指定的字节写到文件输出流中。publicvoidwrite(byte[]b)将一个字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论