8+Java输入与输出.ppt





《8+Java输入与输出.ppt》由会员分享,可在线阅读,更多相关《8+Java输入与输出.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章第八章 Java输入与输出输入与输出第八章第八章 Java输入与输出输入与输出n8.1 输入与输出输入与输出v8.1.1JAVA的输入的输入/输出机制输出机制v8.1.2JAVA.IOn8.2 流的应用流的应用v8.2.1字节流字节流v8.2.2字符流字符流v8.2.3 过滤流过滤流v8.2.4对象流对象流n8.3 访问文件访问文件v8.3.1File对象对象v8.3.2随机访问文件随机访问文件8.1 输入与输出输入与输出8.1.1 JAVA的输入的输入/输出机制输出机制n1.输入与输出输入与输出n对外部设备的输入对外部设备的输入/输出、文件读写、网络读写及线输出、文件读写、网络读写及线
2、程之间的数据通信操作。程之间的数据通信操作。n2.什么是流什么是流?n流是一种数据的源头和目的地之间的通信途径,流是一种数据的源头和目的地之间的通信途径,JAVA使用流使用流(stream)来执行输入输出功能。包括输来执行输入输出功能。包括输入流与输出流。入流与输出流。8.1.2JAVA.IOnJAVA.IO是系统提供的软件包之一,专门为应用程是系统提供的软件包之一,专门为应用程序提供处理序提供处理I/O操作的各种类。操作的各种类。JAVA.IOInputStreamFileOutputStreamRandomAccessFileWriterReaderJAVA.IO包中的流结构包中的流结构n
3、1.InputStream和和OutputStreamn这两个类为字节流的输入和输出类,是所有面向字这两个类为字节流的输入和输出类,是所有面向字节的输入节的输入/输出流的父类。声明了多个用于字节输入输出流的父类。声明了多个用于字节输入和输出的方法,包括读取数据、写入数据、标记位和输出的方法,包括读取数据、写入数据、标记位置等。置等。n2.Reader和和Writen为字符流的输入和输出类,是所有面向字符的输入为字符流的输入和输出类,是所有面向字符的输入/输出流的父类。这两个类是以输出流的父类。这两个类是以Unicode字符为单位字符为单位进行读写的。进行读写的。8.1.2JAVA.IOn3.F
4、ile和和RandomAccessFilen这两个类为对文件操作的类。这两个类为对文件操作的类。File类记载文件信息类记载文件信息并以顺序方式访问文件,并以顺序方式访问文件,RandomAccessFile类以类以随机方式访问文件。随机方式访问文件。8.1.2JAVA.IO 什么是流?什么是流?流(流(stream)是一组有序的数据序列。根据操作的)是一组有序的数据序列。根据操作的类型,分为输入流和输出流两种。输入流的指向称类型,分为输入流和输出流两种。输入流的指向称为源,程序从指向源的输入流中读取数据。当程序为源,程序从指向源的输入流中读取数据。当程序需要读取数据时,就会开启一个通向数据源
5、的流,需要读取数据时,就会开启一个通向数据源的流,这个数据源可以是文件、内存或是网络连接。而输这个数据源可以是文件、内存或是网络连接。而输出流的指向是字节要去的目的地,程序通过向输出出流的指向是字节要去的目的地,程序通过向输出流中写入数据把信息传递到目的地。当程序需要写流中写入数据把信息传递到目的地。当程序需要写入数据时,就会开启一个通向目的地的流。入数据时,就会开启一个通向目的地的流。8.2流的应用流的应用n输入输出流的种类:输入输出流的种类:n字节输入流字节输入流n字节输出流字节输出流n字符输入流字符输入流n字符输出流字符输出流8.2流的应用流的应用n1.字节输入流字节输入流InputSt
6、reamn字节流是以字节为单位来处理数据的,由于字节流不会字节流是以字节为单位来处理数据的,由于字节流不会对数据做任何转换,因此用来处理二进制的数据。对数据做任何转换,因此用来处理二进制的数据。nInputStream类是字节输入流的抽象类,它是所有字节类是字节输入流的抽象类,它是所有字节输入流的父类,其各种子类实现了不同的数据输入流。输入流的父类,其各种子类实现了不同的数据输入流。n这些字节输入流的继承关系如下图所示。这些字节输入流的继承关系如下图所示。8.2.1字节流字节流8.2.1字节流字节流输入流输入流InputStream类的子类类的子类nInputStream中的常用方法:中的常用
7、方法:方方 法法 名名 称称功功 能能 描描 述述available()返回当前返回当前输输入流的数据入流的数据读读取方法可以取方法可以读读取的有效字取的有效字节节数量数量int read(byte bytes)从从输输入数据流中入数据流中读读取字取字节节并存入数并存入数组组b b中中int read(byte bytes,int off,int len)从从输输入数据流入数据流读读取取lenlen个字个字节节,并存入数,并存入数组组bytesbytes中中void reset()将将读读取位置移到取位置移到标记处标记处void mark(int readlimit)在在输输入数据流中加入入数
8、据流中加入标记标记long skip(long n)略略过过n n个字个字节节void close()关关闭闭当前当前输输入流,并入流,并释释放任何与之关放任何与之关联联的系的系统资统资源源Abasract read()从当前数据流中从当前数据流中读读取一个字取一个字节节。若已到达流。若已到达流结结尾,尾,则则返回返回-1-18.2.1字节流字节流n代码示例:从键盘输入一个字符代码示例:从键盘输入一个字符8.2.1字节流字节流import java.io.*;public class Test public static void main(String args)throws IOExcep
9、tion char a;System.out.println(请输入任一字符请输入任一字符);a=(char)System.in.read();System.out.println(你输入的字符是你输入的字符是 +a);nInputStream是抽象类,是抽象类,并不能实例化,实际使用并不能实例化,实际使用中使用其子类,中使用其子类,FileInputStream类是类是InputStream类的子类。它实现了文件的读取,是文件字节输入类的子类。它实现了文件的读取,是文件字节输入流。该类适用于比较简单的文件读取,该类的所有流。该类适用于比较简单的文件读取,该类的所有方法都是从方法都是从Inpu
10、tStream类继承并重写的。创建文类继承并重写的。创建文件字节输入流常用的构造方法有两种:件字节输入流常用的构造方法有两种:nFileInputStream(String filePath)nFileInputStream(File file)8.2.1字节流字节流(1)FileInputStream(String filePath)该构造方法根据指定的文件名称和路径,创建FileInputStream类的实例对象。语法:filePath:文件的绝对路径或相对路径。new FileInputStream(filePath);8.2.1字节流字节流(2)FileInputStream(File
11、 file)该构造方法使用File类型的文件对象创建FileInputStream类的实例对象。语法:file:File文件类型的实例对象。new FileInputStream(file);8.2.1字节流字节流import java.io.*;public class Test public static void main(String args)throws IOException try FileInputStream fis=new FileInputStream(OpenFile.java);int n=512;byte buffer=new byten;while(fis.re
12、ad(buffer,0,n)!=-1)&(n0)System.out.print(new String(buffer);System.out.println();fis.close();catch(IOException ioe)System.out.println(ioe);catch(Exception e)System.out.println(e);n2.字节输出流字节输出流OutputStreamvOutputStream类是字节输出流的抽象类,它是所有字节类是字节输出流的抽象类,它是所有字节输出流的父类,其子类实现了不同数据的输出流。继承输出流的父类,其子类实现了不同数据的输出流。继
13、承关系如下图所示。关系如下图所示。8.2.1字节流字节流nOutputStream中的方法与中的方法与InputStream几乎一一对应:几乎一一对应:8.2.1字节流字节流方方 法法 名名 称称功功 能能 描描 述述void close关关闭输闭输入数据流入数据流void flush()强强制制输输出数据流的字出数据流的字节节到指定外部到指定外部设备设备void write(byte b)写入数据流字写入数据流字节节到指定数到指定数组组b b中中void write(byte b int off,int len)从数据流中写入从数据流中写入lenlen个字个字节节并放入指定数并放入指定数组组
14、b b中中abstract void write(int b)写入一字写入一字节节到数据流到数据流n代码示例:标准输出的用法代码示例:标准输出的用法8.2.1字节流字节流import java.io.*;public class Test public static void main(String args)throws IOException char a=A;System.out.write(a);System.out.write(n);/该行不可省略该行不可省略 n同样,同样,OutputStream也是抽象类,也是抽象类,并不能实例化,并不能实例化,实际使用中使用其子类,实际使用中使
15、用其子类,FileOutputStream类是类是OutputStream类的子类。它实现了文件的写入,类的子类。它实现了文件的写入,能够以字节形式写入文件中,该类的所有方法都是能够以字节形式写入文件中,该类的所有方法都是从从OutputStream类继承并重写的。创建文件字节类继承并重写的。创建文件字节输出流常用的构造方法有两种:输出流常用的构造方法有两种:nFileOutputStream(String filePath)nFileOutputStream(File file)8.2.1字节流字节流(1)FileOutputStream(String filePath)该构造方法根据指定的
16、文件名称和路径,创建关联该文件的FileOutputStream类的实例对象。语法:filePath:文件的绝对路径或相对路径。new FileOutputStream(filePath);8.2.1字节流字节流(2)FileOutputStream(File file)该构造方法使用File类型的文件对象,创建与该文件关联的FileOutputStream类的实例对象。语法:file:File文件类型的实例对象。在file后面,加true会对原有内容进行追加,不加true会将原有内容覆盖。new FileOutputStream(file);8.2.1字节流字节流import java.io
17、.*;public class Test public static void main(String args)throws IOException try System.out.print(Input:);int count,n=512;byte buffer=new byten;count=System.in.read(buffer);FileOutputStream fos=new FileOutputStream(write.txt);fos.write(buffer,0,count);fos.close();System.out.println(Save to write.txt)
18、;catch(IOException ioe)System.out.println(File write error:+ioe);8.2.1字节流字节流n字符流(字符流(charactercstreams)用于处理字符数据)用于处理字符数据的读取和写入,它以字符为单位。的读取和写入,它以字符为单位。nReader类和类和Writer类是字符流的抽象类,它们定义类是字符流的抽象类,它们定义了字符流读取和写入的基本方法,各个子类会依其了字符流读取和写入的基本方法,各个子类会依其特点实现或覆盖这些方法。特点实现或覆盖这些方法。8.2.2字符流字符流n1.Reader类类n帮助用户在帮助用户在Unic
19、ode流内获得字符数据。该类为抽象类,流内获得字符数据。该类为抽象类,所以实际使用其子类。直接继承自所以实际使用其子类。直接继承自Reader类的子类图类的子类图如下:如下:8.2.2字符流字符流ReaderBufferReaderCharArrayReaderFilterReaderInputStreamReaderPipedReaderStringReaderLineNumberReaderPushbackReaderFileReadernReader类是所有字符输入流的父类,它定义了操作字类是所有字符输入流的父类,它定义了操作字符输入流的各种方法。常用方法如下表所示。符输入流的各种方法。
20、常用方法如下表所示。8.2.2字符流字符流方法名称方法名称功功 能能 描描 述述read()读读入一个字符。若已入一个字符。若已读读到流到流结结尾,尾,则则返回返回值为值为1 1read(char)读读取一些字符到取一些字符到charchar数数组组内,并返回所内,并返回所读读入的字符的入的字符的数量。若已到达流数量。若已到达流结结尾,尾,则则返回返回-1-1reset()将当前将当前输输入流重新定位到最后一次入流重新定位到最后一次调调用用mark()mark()方法方法时时的位置的位置skip(long n)跳跳过过参数参数n n指定的字符数量,并返回所跳指定的字符数量,并返回所跳过过字符的
21、数量字符的数量close()关关闭该闭该流并流并释释放与之关放与之关联联的所有的所有资资源。在关源。在关闭该闭该流后,流后,再再调调用用 read()read()、ready()ready()、mark()mark()、reset()reset()或或 skip()skip()将抛出异常将抛出异常n(1)InputStreamReader类类nInputStreamReader 是字节流通向字符流的桥梁。是字节流通向字符流的桥梁。它可以根据指定的编码方式,将字节输入流转换为它可以根据指定的编码方式,将字节输入流转换为字符输入流。创建字符输入流常用的构造方法有两字符输入流。创建字符输入流常用的构
22、造方法有两种:种:nInputStreamReader(InputStream in)nInputStreamReader(InputStream in,String cname)8.2.2字符流字符流InputStreamReader(InputStream in)该构造方法使用默认字符集创建InputStreamReader类的实例对象。语法如下:in:字节流类的实例对象。8.2.2字符流字符流new InputStreamReader(in);InputStreamReader(InputStream in,String cname)该构造方法使用已命名的字符编码方式创建InputStr
23、eamReader类的实例对象。语法如下:cname:使用的编码方式名。InputStreamReader类常用的方法如下表所示。new InputStreamReader(in,cname);8.2.2字符流字符流方方 法法 名名 称称功功 能能 描描 述述close()close()关关闭闭流流read()read()读读取取单单个字符个字符read(char cb,read(char cb,int off,int len)int off,int len)将字符将字符读读入数入数组组中的某一部分中的某一部分getEncoding()getEncoding()返回此流使用的字符返回此流使用的
24、字符编码编码的名称的名称ready()ready()报报告此流是否已准告此流是否已准备读备读8.2.2字符流字符流n(2)FileReader类类nFileReader类是类是Reader类的子类,它实现了从文件类的子类,它实现了从文件中读出字符数据,是文件字符输入流。该类的所有中读出字符数据,是文件字符输入流。该类的所有方法都是从方法都是从Reader类中继承来的。类中继承来的。FileReader类的类的常用构造方法有两种常用构造方法有两种:nFileReader(String filePath)nFileReader(File file)8.2.2字符流字符流FileReader(Str
25、ing filePath)该构造方法根据指定的文件名称和路径,创建FileReader类的实例对象。语法如下:filePath:文件的绝对路径或相对路径。8.2.2字符流字符流new FileReader(filePath);FileReader(File file)该构造方法使用File类型的文件对象创建FileReader类的实例对象。语法如下:file:File文件类型的实例对象。new FileReader(file);8.2.2字符流字符流n例如,利用例如,利用FileReader读取文件读取文件“Example5-1.txt”的内容,的内容,输出到控制台上程序代码为:输出到控制台上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 输入 输出

限制150内