Java输入与输出.ppt





《Java输入与输出.ppt》由会员分享,可在线阅读,更多相关《Java输入与输出.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课件制作人:明日科技第 10 章 Java输入与输出(I/O)10.1 File类10.2 流10.3 字 节 流10.4 字符流10.5 RandomAccessFile类10.6 过 滤 器 流10.7 对象序列化(objectcserialization)课件制作人:明日科技10.1 File类File类是一个与流无关的类。File类的对象可以获取文件及其文件所在的目录、文件的长度等信息。创建一个File对象的常用构造方法有3种:(1)File(String pathname) (2)File(String path,String filename) (3)File(File file,
2、String filename) 课件制作人:明日科技File类(1)File(String pathname)该构造方法通过指定的文件路径字符串来创建一个新File实例对象。语法:pathname:文件路径字符串,包括文件名称。就是将一个代表路径的字符串转换为抽象的路径。new File(filename);课件制作人:明日科技File类(2)File(String path,String filename)该构造方法根据指定的父路径字符串和子路径字符串(包括文件名称)创建File类的实例对象。语法:path:父路径字符串。filename:子路径字符串,不能为空。new File(path
3、, filename);课件制作人:明日科技File类(3)File(File file,String filename)该构造方法根据指定的File类的父路径和字符串类型的子路径(包括文件名称)创建File类的实例对象。语法:file:是父路径对象。filename:子路径字符串。File类包含了文件和文件夹的多种属性和操作方法。常用的方法如下表所示。【例1】 new File(file,filename);方 法 名 称功 能 描 述getName()获取文件的名字getParent()获取文件的父路径字符串getPath()获取文件的相对路径字符串getAbsolutePath()获取文
4、件的绝对路径字符串exists()判断文件或文件夹是否存在canRead()判断文件是否可读的isFile()判断文件是否是一个正常的文件,而不是目录canWrite()判断文件是否可被写入idDirectory()判断是不是文件夹类型isAbsolute()判断是不是绝对路径isHidden()判断文件是否是隐藏文件delete()删除文件或文件夹,如果删除成功返回结果为truemkdir()创建文件夹,如果创建成功返回结果为truemkdirs()创建路径中包含的所有父文件夹和子文件夹,如果所有父文件夹和子文件夹都成功创建,返回结果为truecreateNewFile()创建一个新文件le
5、ngth()获取文件的长度lastModified()获取文件的最后修改日期课件制作人:明日科技10.2 流流(stream)是一组有序的数据序列。根据操作的类型,分为输入流和输出流两种。输入流的指向称为源,程序从指向源的输入流中读取数据。当程序需要读取数据时,就会开启一个通向数据源的流,这个数据源可以是文件、内存或是网络连接。而输出流的指向是字节要去的目的地,程序通过向输出流中写入数据把信息传递到目的地。当程序需要写入数据时,就会开启一个通向目的地的流。课件制作人:明日科技10.2.2 输入输出流输入输出流一般分为4种:n字节输入流n字节输出流n字符输入流n字符输出流课件制作人:明日科技字节
6、输入流InputStream类是字节输入流的抽象类,它是所有字节输入流的父类,其各种子类实现了不同的数据输入流。这些字节输入流的继承关系如下图所示。课件制作人:明日科技字节输出流OutputStream类是字节输出流的抽象类,它是所有字节输出流的父类,其子类实现了不同数据的输出流。继承关系如下图所示。课件制作人:明日科技字符输入流 Reader类是字符输入流的抽象类,所有字符输入流的实现都是它的子类。Java中字符输入流的继承关系如下图所示。课件制作人:明日科技字符输出流 Writer类是字符输出流的抽象类,所有字符输出流的实现都是它的子类。Java中字符输出流的继承关系如下图所示。课件制作人
7、:明日科技10.3 字 节 流 字节流是以字节为单位来处理数据的,由于字节流不会对数据做任何转换,因此用来处理二进制的数据。课件制作人:明日科技10.3.1 InputStream类与OutputStream类InputStream类是所有字节输入流的父类,它定义了操作输入流的各种方法。常用方法如下表所示。方 法 名 称功 能 描 述available()返回当前输入流的数据读取方法可以读取的有效字节数量read(byte bytes)从输入数据流中读取字节并存入数组b中read(byte bytes,int off,int len)从输入数据流读取len个字节,并存入数组bytes中rese
8、t()将当前输入流重新定位到最后一次调用mark() 方法时的位置mark(int readlimit)在输入数据流中加入标记markSupported()测试输入流中是否支持标记close()关闭当前输入流,并释放任何与之关联的系统资源Abasract read()从当前数据流中读取一个字节。若已到达流结尾,则返回-1课件制作人:明日科技10.3.2 FileInputStream类 与FileOutputStream类FileInputStream类是InputStream类的子类。它实现了文件的读取,是文件字节输入流。该类适用于比较简单的文件读取,该类的所有方法都是从InputStrea
9、m类继承并重写的。创建文件字节输入流常用的构造方法有两种:nFileInputStream(String filePath) nFileInputStream(File file) 课件制作人:明日科技FileInputStream类 (1)FileInputStream(String filePath)该构造方法根据指定的文件名称和路径,创建FileInputStream类的实例对象。语法:filePath:文件的绝对路径或相对路径。new FileInputStream (filePath);课件制作人:明日科技FileInputStream类 (2)FileInputStream(Fil
10、e file)该构造方法使用File类型的文件对象创建FileInputStream类的实例对象。语法:file:File文件类型的实例对象。【例2】 new FileInputStream (file);课件制作人:明日科技FileOutputStream类FileOutputStream类是OutputStream类的子类。它实现了文件的写入,能够以字节形式写入文件中,该类的所有方法都是从OutputStream类继承并重写的。创建文件字节输出流常用的构造方法有两种:nFileOutputStream(String filePath) nFileOutputStream(File file
11、) 课件制作人:明日科技FileOutputStream类(1)FileOutputStream(String filePath)该构造方法根据指定的文件名称和路径,创建关联该文件的FileOutputStream类的实例对象。语法:filePath:文件的绝对路径或相对路径。new FileOutputStream (filePath);课件制作人:明日科技FileOutputStream类(2)FileOutputStream(File file)该构造方法使用File类型的文件对象,创建与该文件关联的FileOutputStream类的实例对象。语法:file:File文件类型的实例对象
12、。在file后面,加true会对原有内容进行追加,不加true会将原有内容覆盖。【例3】new FileOutputStream (file);课件制作人:明日科技10.4 字符流 字符流(charactercstreams)用于处理字符数据的读取和写入,它以字符为单位。Reader类和Writer类是字符流的抽象类,它们定义了字符流读取和写入的基本方法,各个子类会依其特点实现或覆盖这些方法。 课件制作人:明日科技10.4.1 Reader类与Writer类 Reader类是所有字符输入流的父类,它定义了操作字符输入流的各种方法。常用方法如下表所示。方法名称功 能 描 述read()读入一个字
13、符。若已读到流结尾,则返回值为1read(char)读取一些字符到char数组内,并返回所读入的字符的数量。若已到达流结尾,则返回-1reset()将当前输入流重新定位到最后一次调用mark() 方法时的位置skip(long n)跳过参数n指定的字符数量,并返回所跳过字符的数量close()关闭该流并释放与之关联的所有资源。在关闭该流后,再调用 read()、ready()、mark()、reset() 或 skip() 将抛出异常课件制作人:明日科技Reader类与Writer类 Writer类是所有字符输出流的父类,它定义了操作输出流的各种方法。常用方法如下表所示。方 法 名 称功 能
14、描 述write(int c)将字符c写入输出流write(String str)将字符串str写入输出流write(char cbuf)将字符数组的数据写入到字符输出流flush()刷新当前输出流,并强制写入所有缓冲的字节数据close()向输出流写入缓冲区的数据,然后关闭当前输出流,并释放所有与当前输出流有关的系统资源课件制作人:明日科技10.4.2 InputStreamReader类与OutputStream Writer类InputStreamReader 是字节流通向字符流的桥梁。它可以根据指定的编码方式,将字节输入流转换为字符输入流。创建字符输入流常用的构造方法有两种:nInpu
15、tStreamReader(InputStream in)nInputStreamReader(InputStream in, String cname)课件制作人:明日科技InputStreamReader类(1)InputStreamReader(InputStream in)该构造方法使用默认字符集创建InputStreamReader类的实例对象。语法如下:in:字节流类的实例对象。new InputStreamReader(in);课件制作人:明日科技InputStreamReader类(2)InputStreamReader(InputStream in, String cname
16、)该构造方法使用已命名的字符编码方式创建InputStreamReader类的实例对象。语法如下:cname:使用的编码方式名。InputStreamReader类常用的方法如下表所示。new InputStreamReader(in,cname);课件制作人:明日科技InputStreamReader类【例6】 方 法 名 称功 能 描 述close()关闭流read()读取单个字符read(char cb, int off, int len)将字符读入数组中的某一部分getEncoding()返回此流使用的字符编码的名称ready()报告此流是否已准备读课件制作人:明日科技 OutputS
17、treamWriter类 OutputStreamWriter 是字节流通向字符流的桥梁。写出字节,并根据指定的编码方式,将之转换为字符流。创建字符输出流常用的构造方法有两种。nOutputStreamWriter(OutputStream out)nOutputStreamWriter(OutputStream out,String cname)课件制作人:明日科技OutputStreamWriter类 (1)OutputStreamWriter(OutputStream out)该构造方法使用默认字符集创建OutputStreamWriter类的实例对象。语法如下:out:字节流类的实例对
18、象。new OutputStreamReader(out);课件制作人:明日科技OutputStreamWriter类 (2)OutputStreamWriter(OutputStream out,String cname)该构造方法使用已命名的字符编码方式创建OutputStreamWriter类的实例对象。语法如下:cname:使用的编码方式名。OutputStreamReader类常用的方法如下表所示:new OutputStreamWriter(out,cname);课件制作人:明日科技OutputStreamWriter类 【例7】 方 法 名 称功 能 描 述close()关闭流,
19、但要先刷新flush()刷新流的缓冲write(int char)写入单个字符write(String str, int off, int len) 写入字符串的某一部分write(char cb, int off, int len)写入字符数组的某一部分课件制作人:明日科技10.4.3 FileReader类与FileWriter类FileReader类是Reader类的子类,它实现了从文件中读出字符数据,是文件字符输入流。该类的所有方法都是从Reader类中继承来的。FileReader类的常用构造方法有两种:nFileReader(String filePath)nFileReader(
20、File file)课件制作人:明日科技FileReader类(1)FileReader(String filePath)该构造方法根据指定的文件名称和路径,创建FileReader类的实例对象。语法如下:filePath:文件的绝对路径或相对路径。new FileReader(filePath);课件制作人:明日科技FileReader类(2)FileReader(File file)该构造方法使用File类型的文件对象创建FileReader类的实例对象。语法如下:file:File文件类型的实例对象。new FileReader(file);课件制作人:明日科技FileReader类例如
21、,利用FileReader读取文件“Example5-1.txt”的内容,输出到控制台上程序代码为:try File f=new File(C:,Example5-1.txt); FileReader fr=new FileReader(f);/ 创建文件字符输入流 char data=new char512; int rs=0; while(rs=fr.read(data)0)/ 在循环中读取数据 String str=new String(data,0,rs); System.out.println(str); catch (Exception e) e.printStackTrace()
22、;课件制作人:明日科技FileWriter类FileWriter类是Writer类的子类,它实现了将字符数据写入文件中,是文件字符输出流。该类的所有方法都是从Writer类中继承来的。FileWriter类的常用构造方法有两种:nFileWriter(String filePath)nFileWriter(File file)课件制作人:明日科技FileWriter类(1)FileWriter(String filePath)该构造方法根据指定的文件名称和路径,创建关联该文件的FileWriter类的实例对象。语法如下:new FileWriter(filePath);课件制作人:明日科技Fi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 输入 输出

限制150内