电子教案--第9章

上传人:kms****20 文档编号:57132590 上传时间:2018-10-19 格式:PPT 页数:47 大小:115.50KB
返回 下载 相关 举报
电子教案--第9章_第1页
第1页 / 共47页
电子教案--第9章_第2页
第2页 / 共47页
电子教案--第9章_第3页
第3页 / 共47页
电子教案--第9章_第4页
第4页 / 共47页
电子教案--第9章_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《电子教案--第9章》由会员分享,可在线阅读,更多相关《电子教案--第9章(47页珍藏版)》请在金锄头文库上搜索。

1、第九章 输入、输出流,本章导读 1. 文件 2. 文件字节流 3. 文件字符流 4. 从键盘读取数据 5缓冲流 6数组流,7字符串流 8数据流 9管道流 10对象流 11.序列化与对象克隆 12. 随机读写流 13. 文件锁,当程序需要读取磁盘上的数据或将程序中得到数据存储到磁盘时,就可以使用输入输出流,简称I/O流。I/O流提供一条通道程序,可以使用这条通道读取“源”中的数据,或把数据送到“目的地”。I/O流中的输入流的指向称做源,程序从指向源的输入流中读取源中的数据;输出流的指向称做目的地,程序通过向输出流中写入数据把信息传递到目的地。虽然I/O流经常与磁盘文件存取有关,但是程序的源和目的

2、地也可以是键盘、鼠标、内存或显示器窗口。,Java的I/O流库提供大量的流类(在包java.io中)。其中有4个重要的abstract类: 1InputStream(字节输入流) 2Reader(字符输入流) 3OutputStream(字节输出流) 4Writer(字符输出流) 其中InputStream 和Reader类为其子类提供了重要的读取数据的read方法,OutputStream和Writer类为其子类提供了重要的写入数据的write方法。我们将陆续介绍它们的子类及用法。,9.1 文件,Java使用File类创建的对象来获取文件本身的一些信息,例如文件所在的目录、文件的长度、文件读

3、写权限等,文件对象并不涉及对文件的读写操作。 创建一个File对象的构造方法有3个: File(String filename); File(String directoryPath,String filename); File(File f, String filename); 其中,filename是文件名字,directoryPath是文件的路径,f是指定成一个目录的文件。 使用File(String filename)创建文件时,该文件被认为是与当前应用程序在同一目录中。,1文件的属性 经常使用File类的下列方法获取文件本身的一些信息: public String getName()

4、 获取文件的名字。 public boolean canRead() 判断文件是否是可读的。 public boolean canWrite() 判断文件是否可被写入。 public boolean exits() 判断文件是否存在。 public long length() 获取文件的长度(单位是字节)。,public String getAbsolutePath() 获取文件的绝对路径。 public String getParent() 获取文件的父目录。 public boolean isFile() 判断文件是否是一个正常文件,而不是目录。 public boolean isDire

5、ctroy() 判断文件是否是一个目录。 public boolean isHidden() 判断文件是否是隐藏文件。 public long lastModified() 获取文件最后修改的时间(时间是从1970年午夜至文件最后修改时刻的毫秒数,2目录 (1)创建目录 File对象调用方法:public boolean mkdir()创建一个目录,如果创建成功返回true,否则返回false(如果该目录已经存在将返回false)。 (2)列出目录中的文件 如果File对象是一个目录,那么该对象可以调用下述方法列出该目录下的文件和子目录: public String list() 用字符串形式

6、返回目录下的全部文件, public File listFiles() 用File对象形式返回目录下的全部文件。,我们有时需要列出目录下指定类型的文件,比如.java、.txt等扩展名的文件。可以使用File类的下述两个方法,列出指定类型的文件, public String list(FilenameFilter obj) 该方法用字符串形式返回目录下的指定类型的所有文件。 public File listFiles(FilenameFilter obj) 该方法用File对象返回目录下的指定类型所有文件。 FilenameFile是一个接口,该接口有一个方法: public boolean

7、accept(File dir,String name);,3文件的创建与删除 当使用File类创建一个文件对象后,例如 File f=new File(“c:myletter“,“letter.txt“); 如果c:myletter目录中没有名字为letter.txt文件,文件 对象f调用方法: public boolean createNewFile() 可以在c:myletter目录中建立一个名字为letter.txt的文 件。 文件对象调用方法 public boolean delete() 可以删除当前文件,例如: f. delete();,在下面的例子1中,列出C:/1000目录下

8、扩展名是.java文件的名字以及它们的大小,并删除了C:/1000中的一个.java文件。,4运行可执行文件 当要执行一个本地机上的可执行文件时,可以使用java.lang包中的Runtime类。首先使用Runtime 类声明一个对象,如: Runtime ec; 然后使用该类的静态getRuntime()方法创建这个对象: ec=Runtime.getRuntime(); ec可以调用exec(String command)方法打开本地机的可执行文件或执行一个操作。 下面的例子2中,Runtime对象打开windows平台上的绘图程序和记事本程序。,返回,9.2 文件字节流,1FileInp

9、utStream类 FileInputStream类是InputStream的子类,称为文件字节输入流。文件字节输入流按字节读取文件中的数据。该类的所有方法都是从InputStream类继承来的。为了创建FileInputStream类的对象,可以使用下列构造方法: FileInputStream(String name) FileInputStream(File file) 第一个构造方法使用给定的文件名name创建一个FileInputStream对象。第二个构造器使用File对象创建FileInputStream对象。构造方法参数指定的文件称作输入流的源,输入流通过使用read()方法从

10、输入流读出源中的数据。,当您使用文件输入流构造器建立通往文件的输入流时,可能会出现错误(也被称为异常)。例如,当您试图要打开的文件不存在,就出现I/O错误,Java生成一个出错信号,它使用一个IOException对象来表示这个出错信号。程序必须使用一个try-catch块检测并处理这个异常。 输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数据,read方法给程序提供一个从输入流中读取数据的基本方法。 read方法的格式如下: int read(); read方法从输入流中顺序读取单个字节的数据。该方法返回字节值(0255之间的一个整数),读取位置到达文件末尾,则返回-1。,r

11、ead方法还有其它一些形式。这些形式能使程序把多个字节读到一个字节数组中: int read(byte b ); int read(byte b , int off, int len); 其中,off参数指定read方法把数据存放在字节数组b中的什么地方样,len参数指定该方法将读取的最大字节数。上面所示的这两个read方法都返回实际读取的字节个数,如果它们到达输入流的末尾,则返回-1。 FileInputStream流顺序地读取文件,只要不关闭流,每次调用read方法就顺序地读取文件中其余的内容,直到文件的末尾或流被关闭。,2FileOutputStream类 与FileInputStrea

12、m类相对应的类是FileOutputStream类。FileOutputStream提供了基本的文件写入能力。FileOutputStream类是OutputStream的子类,称为文件字节输出流。文件字节输出流按字节将数据写入到文件中。为了创建FileOutputStream类的对象,可以使用下列构造方法: FileOutputStream(String name) FileOutputStream(File file) 第一个构造方法使用给定的文件名name创建一个FileOutputStream对象。第二个构造方法使用File对象创建FileOutputStream对象。构造方法参数指定

13、的文件称作输出流的目的地,输出流通过使用write()方法把数据写入输出流到达目的地。,FileOutputStream对象可以使用write方法把字节发送给输出流,write的用法如下: public void write(byte b) 写b.length个字节到输出流。 public void.write(byte b,int off,int len) 从给定字节数组中起始于偏移量off处写len个字节到输出流,参数b是存放了数据的字节数组。 FileOutStream流顺序地写文件,只要不关闭流,每次调用writer方法就顺序地向文件写入内容,直到流被关闭。如果输出流要写入数据的文件已

14、经存在,该文件中的数据内容就会被刷新;如果要写入数据的文件不存在,该文件就会被建立。 在下面的例子3中,首先将“欢迎Welcome”写入到“hello.txt”中,然后再读取该文件中的内容。,返回,9.3 文件字符流,1FileReader类 为了创建FileReader类的对象,可以使用下列构造方法: FileReader(String name) FileReader (File file) 第一个构造方法使用给定的文件名name创建一个FileReader 对象。第二个构造方法使用File对象创建FileReader对象。构造方法参数指定的文件称作输入流的源,输入流通过使用read()方

15、法从输入流读出源中的数据。以下是read方法的功能解释:,int read() 输入流调用该方法从源中读取一个字符,该方法返回一个整数(065535之间的一个整数,Unicode字符值),如果未读出字符就返回-1。 int read(char b ) 输入流调用该方法从源中读取b.length个字符到字符数组b中,返回实际读取的字符数目。如果到达文件的末尾,则返回-1。 int read(char b , int off, int len) 输入流调用该方法从源中读取len个字符并存放到字符数组b中,返回实际读取的字符数目。如果到达文件的末尾,则返回-1。其中,off参数指定read方法从符数

16、组b中的什么地方存放数据,2FileWriter类 FileWriter提供了基本的文件写入能力。FileWriter类是Writer的子类,称为文件字符输出流。文件字符输出流按字符将数据写入到文件中。为了创建FileWriter类的对象,可以使用下列构造方法: FileWriter(String name) FileWriter (File file) 第一个构造方法使用给定的文件名name创建一个FileWriter对象。第二个构造方法使用File对象创建FileWriter对象。构造方法参数指定的文件称作输出流的目的地,输出流通过使用write()方法把字符数据写入输出流到达目的地。,FileWriter对象可以使用write方法把字符数据写入输出流,write的用法如下: public void write(char b) 写b.length个字符到输出流。 public void.write(char b,int off,int len) 从给定字符数组中起始于偏移量off处写len个字符到输出流,参数b是存放了数据的字符数组。 void write(String str) 把字符串中的全部字符写入到输出流。 void write(String str,int off,int len) 从字符串str中起始于偏移量off处写len个字符到输出流。,

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

当前位置:首页 > 生活休闲 > 科普知识

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