Java程序设计实用教程 教学课件 ppt 作者 秦学礼 等 第6章 输入输出处理

上传人:E**** 文档编号:89396252 上传时间:2019-05-24 格式:PPT 页数:35 大小:88KB
返回 下载 相关 举报
Java程序设计实用教程 教学课件 ppt 作者 秦学礼 等 第6章 输入输出处理_第1页
第1页 / 共35页
Java程序设计实用教程 教学课件 ppt 作者 秦学礼 等 第6章 输入输出处理_第2页
第2页 / 共35页
Java程序设计实用教程 教学课件 ppt 作者 秦学礼 等 第6章 输入输出处理_第3页
第3页 / 共35页
Java程序设计实用教程 教学课件 ppt 作者 秦学礼 等 第6章 输入输出处理_第4页
第4页 / 共35页
Java程序设计实用教程 教学课件 ppt 作者 秦学礼 等 第6章 输入输出处理_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《Java程序设计实用教程 教学课件 ppt 作者 秦学礼 等 第6章 输入输出处理》由会员分享,可在线阅读,更多相关《Java程序设计实用教程 教学课件 ppt 作者 秦学礼 等 第6章 输入输出处理(35页珍藏版)》请在金锄头文库上搜索。

1、2019/5/24,秦学礼,1,JAVA程序设计实用教程(6),秦学礼,秦学礼,2,2019/5/24,第6章 输入/输出处理,6.1 I/O流概述 6.2 字节流 6.3 字符流,秦学礼,3,2019/5/24,6.1 I/O流概述,流是指在计算机的输入输出之间运动的数据序列。输入流代表从外设流入计算机的数据序列;输出流代表从计算机流向外设的数据序列。 流式输入输出的特点是:每个数据都必须等待排在它前面的数据读入或送出之后才能被读写,每次读写操作处理的都是序列中剩余的未读写数据中的第一个,而不能随意选择输入输出的位置。,秦学礼,4,2019/5/24,6.1 I/O流概述,Java中流的实现

2、是在java.io包定义的类层次结构内部完成的。要在程序中使用流类,必须引入java.io包。 流中的数据可以是未加工的原始二进制数据,也可以是按一定编码处理后符合某种格式规定的特定数据,如字符数据,所以Java中的流有字节流和字符流之分。,秦学礼,5,2019/5/24,6.2 字节流,一般来说,处理字符或字符串时应使用字符流类,处理字节或二进制时应用字节流类。InputStream和OutputStream设计成字节流类。Reader和Writer为字符流设计。但在最底层,所有的输入/输出都是字节形式的,基于字符的流只是为了处理字符更方便一些。,秦学礼,6,2019/5/24,6.2.1

3、InputStream 和OutputStream,InputStream InputStream类中的方法有: 从流中读取数据 int read( ) int read( byte b ) int read( byte b , int off, int len ) int available( ) long skip( long n ),秦学礼,7,2019/5/24,6.2.1 InputStream 和OutputStream,关闭流 close( ) 使用输入流中的标记 void mark( int readlimit ) void reset( ) boolean markSuppo

4、rted( ),秦学礼,8,2019/5/24,6.2.1 InputStream 和OutputStream,OutputStream 输出数据 void write( int b ) void write( byte b ) void write( byte b , int off, int len ) 刷新 flush( ) 关闭流 close( ),秦学礼,9,2019/5/24,6.2.2文件流FileInputStream/ FileOutputStream,I/O处理中,最常见的是对文件的操作,java.io包中有关文件处理的类有:File、FileInputStream和Fil

5、eOutputStream。 File类提供了一种与机器无关的方式来描述一个文件对象的属性。 FileInputStream类和FileOutputStream类用来进行文件I/O处理,由它们所提供的方法可以打开本地主机上的文件,并进行顺序的读/写。,秦学礼,10,2019/5/24,6.2.2文件流FileInputStream/ FileOutputStream,1.File类和它的一些主要方法 文件或目录的生成 : public File(String path) 如果path是实际存在的路径,则该File对象表示的是目录;如果path是文件名,则该File对象表示的是文件。 publi

6、c File(String path,String name) path是路径名,name是文件名 public File(File dir,String name) dir是路径名,name是文件名,秦学礼,11,2019/5/24,6.2.2文件流FileInputStream/ FileOutputStream,文件名的处理 : String getName( ) 得到一个文件的名称(不包括路径)。 String getPath( ) 得到一个文件的路径名。 String getAbsolutePath( ) 得到一个文件的绝对路径名。 String getParent( ) 得到一个文

7、件的上一级目录名。 String renameTo(File newName) 将当前文件名更名为给定文件名。,秦学礼,12,2019/5/24,6.2.2文件流FileInputStream/ FileOutputStream,文件属性测试 : boolean exists( ) 测试当前File对象所指示的文件是否存在。 boolean canWrite( ) 测试当前文件是否可写。 boolean canRead( ) 测试当前文件是否可读。 boolean isFile( ) 测试当前文件是否是文件(不是目录)。 boolean isDirectory( ) 测试当前文件是否是目录。,

8、秦学礼,13,2019/5/24,6.2.2文件流FileInputStream/ FileOutputStream,普通文件信息和工具 : long lastModified( ): 得到文件最近一次修改的时间。 long length( ): 得到文件的长度,以字节为单位。 boolean delete( ): 删除当前文件。 目录操作 : boolean mkdir( ): 根据当前对象生成一个由该对象指定的路径。 String list( ): 列出当前目录下的文件。,秦学礼,14,2019/5/24,6.2.2文件流FileInputStream/ FileOutputStream,

9、2. FileInputStream类(文件输入流) FileInputStream类创建一个能从文件中读取字节的InputStream类,它有两个常用的构造函数: (1)FileInputStream(String fileName) 参数fileName表示带路径的磁盘文件名。 (2)FileInputStream(File fileObj) 参数fileObj表示为磁盘文件所建立的File对象名。 FileInputStream类重载了InputStream的6个方法,mark()和reset()不被重载。,秦学礼,15,2019/5/24,6.2.2文件流FileInputStream

10、/ FileOutputStream,3. FileOutputStream类(文件输出流) FileOutputStream类用于向一个文本文件写数据。它是OutputStream类的子类,象输入文件一样,必须先打开这个文件后才能写这个文件。它有两个常用的构造函数: (1) FileOutputStream(String fileName) 参数fileName表示带路径的磁盘文件名。 (2)FileOutputStream(File fileObj) 参数fileObj表示为磁盘文件所建立的File对象名。 因为FileOutputStream类是OutputStream类的子类,所以它重

11、载了OutputStream类的方法,即用write()方法向文件写入字节数据,用close()方法关闭流。,秦学礼,16,2019/5/24,6.2.3标准流,Java语言预先定义好3个流对象分别表示标准输入、标准输出和标准错误。其中标准输入System.in作为InputStream类的一个实例来实现,标准输出System.out作为PrintStream类的实例来实现,标准错误System.err也属于PrintStream类的实例。,秦学礼,17,2019/5/24,6.2.3标准流,1.标准输入 标准输入System.in作为InputStream类的一个实例来实现,可以使用read

12、()和skip(long n)两个方法。 read()实现从输入中读一个字节,skip(long n)实现在输入中跳过n个字节。但是这样只能一次输入一个字节,有时候不方便,所以会用到BufferedReader和InputStreamReader流,前者是缓冲输入字符流,后者用来将字节转换为字符。,秦学礼,18,2019/5/24,6.2.3标准流,2.标准输出 标准输出System.out为类System的数据成员out,它属于PrintStream类。 PrintStream类和OutputStream类的关系是:OutputStream类有一个抽象子类叫FilterOutputStrea

13、m,PrintStream类是这个抽象类FilterOutputStream的一个子类。 PrintStream类提供流的格式化输出功能,能将任意类型数据输出为字符串形式。 标准输出System.out可以使用print()和println()两个方法。这两个方法支持使用Java的任意基本类为参数。这两个方法的唯一区别是print()输出后不换行,而println()输出后换行。,秦学礼,19,2019/5/24,6.3 字符流,Java中的字符是Unicode编码,是双字节的,而InputStream类和OutputStream类是处理字节的,在处理字符文本时不太方便,为此Java设计了字符

14、流类。,秦学礼,20,2019/5/24,6.3.1 Reader类和Writer类,Java为字符文本的输入输出专门提供了一套单独的类,Reader和Writer两个抽象类与InputStream类和OutputStream类相对应。这两个类是抽象类,只是提供了一系列用于字符流处理的接口,不能生成这两个类的实例,只能通过使用由它们派生出来的子类所生成的对象来处理字符流。它们下面的子类,处理具体IO设备的字符输入输出,如FileReader就是用来读取文件流中的字符。,秦学礼,21,2019/5/24,6.3.1 Reader类和Writer类,1. Reader类 Reader类是处理所有字

15、符流输入类的父类。该类的所有方法在出错情况下都将引发IOException异常。 Reader类中的方法如下:,秦学礼,22,2019/5/24,6.3.1 Reader类和Writer类,读取字符 public int read() throws IOException 读取一个字符,返回值为读取的字符。 public int read(char cbuf) throws IOException 读取一系列字符到数组cbuf中,返回值为实际读取的字符的数量。 public abstract int read(char cbuf,int off,int len) throws IOExcept

16、ion 读取len个字符,从数组cbuf的下标off处开始存放,返回值为实际读取的字符数量,该方法必须由子类实现。,秦学礼,23,2019/5/24,6.3.1 Reader类和Writer类,标记流 public boolean markSupported() 判断当前流是否支持做标记。 public void mark(int readAheadLimit) throws IOException 给当前流作标记,最多支持readAheadLimit个字符的回溯。public void reset() throws IOException 将当前流重置到做标记处。 关闭流 public abstract void close() throws IOException 关闭输入流。,秦学礼,24,2019/5/24,6.3.1 Reader类和Writer类,2. Writer类 Writer类是处理所有字符流输出类的父类。该类中所有方法的返回值均为void,并在出错情况下引发IOException异常。 Write

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号