第九章__java_输入输出流.ppt
《第九章__java_输入输出流.ppt》由会员分享,可在线阅读,更多相关《第九章__java_输入输出流.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章第九章输入输出流输入输出流输入输出流:输入输出流:lJava的输入输出功能必须借助于输入输出类库的输入输出功能必须借助于输入输出类库Java.io包来实现,这个包中的类大部分是用来完包来实现,这个包中的类大部分是用来完成流式输入输出的流类。成流式输入输出的流类。l在在java中,把能够读取一个字节序列的对象称为中,把能够读取一个字节序列的对象称为一个一个输入流输入流,把能够写一个字节的对象称为一个,把能够写一个字节的对象称为一个输出流输出流。分别由。分别由InputStream和和OutputStream表表示。示。l处理处理Unicode码的字符流,由抽象类码的字符流,由抽象类Read
2、er和和Writer派生。派生。流流是指在计算机的输入与输出之间的数据的序流是指在计算机的输入与输出之间的数据的序列,而列,而Java中的数据流有中的数据流有位流(字节流)位流(字节流)和和字字符流符流之分;之分;就流的运动方向而言,流可分为就流的运动方向而言,流可分为输入流输入流(inputstream)和和输出流输出流(outputstream),),输入流代表从外设流入计算机的数据序列;输输入流代表从外设流入计算机的数据序列;输出流代表从计算机流向外设的数据序列。出流代表从计算机流向外设的数据序列。9.1java.io包简介包简介ljava.io包通过数据流、序列和文件系统为系统包通过数
3、据流、序列和文件系统为系统提供输入输出。提供输入输出。9.2InputStream类类和和 OutputStream类类InputStream类的实现:类的实现:publicabstractclassInputStreamextendsObjectInputStream类的方法类的方法publicintavailable()throwsIOException返回目前输入数据流中已有几个字符准备好被读取了返回目前输入数据流中已有几个字符准备好被读取了publicvoidclose()throwsIOException将这个输入数据流关闭将这个输入数据流关闭publicabstractintrea
4、d()throwsIOException从输入数据流读取下一个字节并返回返回值的范围从到从输入数据流读取下一个字节并返回返回值的范围从到,但如果已经到达数据流的结尾,没有数据可以读取了,但如果已经到达数据流的结尾,没有数据可以读取了,则会返回抛出异常则会返回抛出异常InputStream类的方法publicintread(byteb)throwsIOException从输入数据流中读取数个字节放进数组从输入数据流中读取数个字节放进数组b中,并返回所读取到的中,并返回所读取到的字符数目,最多可以读取和字符数目,最多可以读取和b长度相同的字符数,但如果没有读取长度相同的字符数,但如果没有读取到则返
5、回到则返回publiclongskip(longn)throwsIOException略过略过n个字节不读取,会返回实际略过的字节数目因为数据流个字节不读取,会返回实际略过的字节数目因为数据流中剩下的数据可能不到中剩下的数据可能不到n个字节那么多,所以此时返回值会小于个字节那么多,所以此时返回值会小于nInputStream类的继承关系InputStreamFileInputStream(文件输入字节)(文件输入字节)FilterInputStreamDataInputStream(格式转换格式转换)BufferedInputStream(缓冲功能)(缓冲功能)LSystem.in是是Syst
6、em的一个静态属性,属于的一个静态属性,属于InputStream类对象,用于输入字节数据流,对应标准输入设备:键盘。类对象,用于输入字节数据流,对应标准输入设备:键盘。Java实例实例标准输入标准输入 import java.io.*;public class StandardIn1 public static void main(String args)throws IOException char c;System.out.println(输入一个字符输入一个字符);c=(char)System.in.read();System.out.print(输入的字符是:输入的字符是:+c);标
7、准输入标准输入System.inOutputStream类 OutputStreamOutputStream类类是所有输出数据流的父类,所以它也被实现成是所有输出数据流的父类,所以它也被实现成抽象类,定义了所有输出数据流都具有的共同特性抽象类,定义了所有输出数据流都具有的共同特性 OutputStreamOutputStream类类的实现:的实现:public abstract class public abstract class OutputStreamOutputStream extends Object extends ObjectOutputStream类的继承关系OutputStr
8、eamFileOutputStream(文件输出)文件输出)FilterOutputStreamPrintStream(输出到屏幕)输出到屏幕)DataOutputStream(格式转换)格式转换)BufferedOutputStream(缓冲功能)缓冲功能)OutputStream类的methodpublicvoidclose()throwsIOException关闭与输出数据流的连系关闭与输出数据流的连系publicvoidflush()throwsIOException将写入的数据确实送到接受数据的装置去因为写入的数据通将写入的数据确实送到接受数据的装置去因为写入的数据通常会先放到高速缓
9、存(常会先放到高速缓存(cache)里面,等到数量达到某一程度时,里面,等到数量达到某一程度时,用这个方法将强迫数据写进去用这个方法将强迫数据写进去publicvoidwrite(byteb)throwsIOException将数组将数组b中的数据写入输出数据流中的数据写入输出数据流OutputStream类的methodpublicvoidwrite(byteb,intoff,intlen)throwsIOException将将b数组中从第数组中从第off个字节开始,共写入个字节开始,共写入len个字节到输出数据流个字节到输出数据流publicabstractvoidwrite(intb)t
10、hrowsIOException写入一个字符到输出数据流这个写入一个字符到输出数据流这个method只会将只会将b的个低位写入,的个低位写入,将将24个高位忽略掉个高位忽略掉标准输出标准输出System.outlSystem.out是它的一个静态属性,属于是它的一个静态属性,属于PrintStream类对象,用于输出字节数据流,对应类对象,用于输出字节数据流,对应标准输出设备:屏幕。标准输出设备:屏幕。9.3File类类lFile类指的是磁盘上的目录或文件类指的是磁盘上的目录或文件.“”表示分隔符。例表示分隔符。例如:如:D:myjavaHello.java文件类的主要方法:文件类的主要方法:
11、public File(File parent,String child):建建立立一一个个以以parent加加上上child为路径的为路径的File组件。组件。public File(String pathname):建建立立一一个个以以pathname为为路路径径的的File组件组件 public String getName():得到文件的名字:得到文件的名字public String getPath():得到文件的路径名:得到文件的路径名public String getParent():得到文件的上级路径名:得到文件的上级路径名public boolean exists():判断文件
12、或目录是否存在:判断文件或目录是否存在public long length():返回文件的字节数:返回文件的字节数 public boolean createNewFile()throws IOException:以:以File组件的内容为文件名建立一个新文件,如果原文件已存在,组件的内容为文件名建立一个新文件,如果原文件已存在,返回返回false,如果建立成功,则返回,如果建立成功,则返回true.public void delete():删除文件:删除文件 Java实例实例limport java.awt.*;limport java.io.*;lpublic class FileTest
13、 lpublic static void main(String args)lFile f=new File(D:,c.txt);ltryl boolean b=f.createNewFile();l System.out.println(f.getPath();l System.out.println(f.getParent();l System.out.println(f.getName();l System.out.println(b);l lcatch(Exception e)l l9.4RandomAccessFile类类lRandomAccessFile流由于实现了流由于实现了Da
14、taInput和和DataOutput两个接口,所以既可以用来处理文件的输入,又可以处理两个接口,所以既可以用来处理文件的输入,又可以处理文件的输出。文件的输出。l主要方法:主要方法:l public RandomAccessFile(String name,String mode)构造构造RandomAccessFile流对文件进行读写。流对文件进行读写。name为文件名,为文件名,mode为读写模式,包括为读写模式,包括r(只读只读)rw(可读写可读写).lpublic RandomAccessFile(File name,String mode)构造构造RandomAccessFile流
15、对文件对象进行读写。流对文件对象进行读写。name为文件为文件名,名,mode为读写模式,包括为读写模式,包括r(只读只读)rw(可读写可读写).lclose()关闭关闭RandomAccessFile流,并释放资源。流,并释放资源。lgetFilePointer()返回文件指针位置。返回文件指针位置。l length()返回文件长度返回文件长度l read()从文件中读取一个字节的数据从文件中读取一个字节的数据l readInt()从文件中读取一个从文件中读取一个int值(值(4个字节)个字节)l readLine()读取一行读取一行l seek(long pos)定位参数)定位参数pos在
16、文件中指定的位置在文件中指定的位置skipBytes():在文件中跳过指定数量的字节,数量由:在文件中跳过指定数量的字节,数量由n指定。指定。writeChars(String s):向文件写入一个作为字符数据的字符:向文件写入一个作为字符数据的字符串。串。writeInt():向文件写入一个向文件写入一个int型数据。型数据。Java实例:实例:l将一组数据写入到名为将一组数据写入到名为test.dat的文件中,然后再按相反顺的文件中,然后再按相反顺序读出这些数据。序读出这些数据。limport java.io.*;lpublic class Io l public static void
17、main(String args)l RandomAccessFile test=null;l int data=100,101,102,103,104,105;l tryl test=new RandomAccessFile(test.dat,rw);l l catch(Exception e)l tryl for(int i=0;i=0;i=i-4)l test.seek(i);l System.out.println(test.readInt();l l test.close();l l catch(Exception e)l lReader类Reader子类的继承关系子类的继承关系 R
18、eaderBufferedReader(缓冲功能的字符输入类)缓冲功能的字符输入类)InputStreamReader(输入字节转换为字符)输入字节转换为字符)FileReader(从文件读入字符)从文件读入字符)Reader类的methodpublicabstractvoidclose()throwsIOException关闭数据流关闭数据流publicintread()throwsIOException从输入数据流读取下一个字节并返回返回值的范围从到从输入数据流读取下一个字节并返回返回值的范围从到,但如果已经到达数据流的结尾,没有数据可以读取了,则,但如果已经到达数据流的结尾,没有数据可以
19、读取了,则会返回会返回publicintread(charcbuf)throwsIOException从数据流读取数个字符放进数组从数据流读取数个字符放进数组cbuf中,并返回所读取到的字中,并返回所读取到的字符数目,最多可读取和符数目,最多可读取和cbuf长度相同的字符数,如果没有读取到长度相同的字符数,如果没有读取到则返回则返回-1.这个这个method会一直等待直到读取到字符产生会一直等待直到读取到字符产生IOException或数据读完为止或数据读完为止Reader类的methodpubliclongskip(longn)throwsIOException略过略过n个字节不读取,会返回
20、实际略过的字节数目因为数据个字节不读取,会返回实际略过的字节数目因为数据流中剩下的数据可能不到流中剩下的数据可能不到n个字节那么多,所以此时返回值会小于个字节那么多,所以此时返回值会小于npublicbooleanready()throwsIOException检查数据流是否已经准备好要被读取,是则返回检查数据流是否已经准备好要被读取,是则返回true,否则返回,否则返回false如果返回值是如果返回值是true则紧跟着的则紧跟着的read指令将指令将不会受到阻碍不会受到阻碍Writer类Writer类类的实现:的实现:publicabstractclassWriterextendsObjec
21、tWriter子类的继承关系子类的继承关系 WriterPrintWriter(格式化输出功能)格式化输出功能)BufferedWriter(缓冲功能)缓冲功能)OutputStreamWriter(字符字节转换)字符字节转换)FileWriter(向文件读入字符)向文件读入字符)Writer类的methodpublicabstractvoidclose()throwsIOException关闭与输出数据流的连接,但关闭之前会先调用一次关闭与输出数据流的连接,但关闭之前会先调用一次flushmethod.如果程序结束前没有调用这个如果程序结束前没有调用这个method则写入的数据则写入的数据可
22、能会流失调可能会流失调publicabstractvoidflush()throwsIOEception将写入的数据确实送到收据的装置去将写入的数据确实送到收据的装置去publicvoidwrite(charcbuf)将将cbuf数组中的字符一一写入输出数据流数组中的字符一一写入输出数据流Writer类的methodpublicvoidwrite(charcbuf,intoff,intlen)将将cbuf数组中从第数组中从第off个字符开始,共写入个字符开始,共写入len个字符到输出数据流个字符到输出数据流publicvoidwrite(Stringstr)写入一个字符串到输出数据流写入一个字
23、符串到输出数据流二、标准输入输出Java系统预先定义好系统预先定义好3个流对象分别表示标准输出设备、标准个流对象分别表示标准输出设备、标准输入设备和标准错误设备,它们分别是输入设备和标准错误设备,它们分别是System.out,System.in和和System.err。LSystem.out是它的一个静态属性,属于是它的一个静态属性,属于PrintStream类对象,用类对象,用于输出字节数据流,对应标准输出设备:屏幕。于输出字节数据流,对应标准输出设备:屏幕。LSystem.in也是也是System的一个静态属性,属于的一个静态属性,属于InputStream类对类对象,用于输入字节数据流
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九 _java_ 输入输出
限制150内