Java教学课件第9章输入输出流

上传人:豆浆 文档编号:47447374 上传时间:2018-07-02 格式:PPT 页数:59 大小:233.50KB
返回 下载 相关 举报
Java教学课件第9章输入输出流_第1页
第1页 / 共59页
Java教学课件第9章输入输出流_第2页
第2页 / 共59页
Java教学课件第9章输入输出流_第3页
第3页 / 共59页
Java教学课件第9章输入输出流_第4页
第4页 / 共59页
Java教学课件第9章输入输出流_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《Java教学课件第9章输入输出流》由会员分享,可在线阅读,更多相关《Java教学课件第9章输入输出流(59页珍藏版)》请在金锄头文库上搜索。

1、Java语言A more pure OOP languageA more pure OOP language第九章第九章 输入、输出流输入、输出流w 1.文件 w 2.文件字节流 w 3.文件字符流 w 4.从键盘读取数据 w 5缓冲流 w 6数组流w 7字符串流 w 8数据流 w 9管道流 w 10对象流 w 11.序列化与对象克隆 w 12.随机读写流 w 13.文件锁当程序需要读取磁盘上的数据或将程序中得到数据 存储到磁盘时,就可以使用输入输出流,简称I/O流。 I/O流提供一条通道程序,可以使用这条通道读取“源”中 的数据,或把数据送到“目的地”。I/O流中的输入流的指向称做源,程序从

2、指向源的输入流中读取源中的数据; 输出流的指向称做目的地,程序通过向输出流中写入数 据把信息传递到目的地。虽然I/O流经常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠标、内 存或显示器窗口。Java的I/O流库提供大量的流类(在包java.io中 )。其中有4个重要的abstract类: w InputStream(字节输入流) w Reader(字符输入流) w OutputStream(字节输出流) w Writer(字符输出流) 其中InputStream和Reader类为其子类提供了重要 的读取数据的read()方法,OutputStream和Writer 类为其子类提供了

3、重要的写入数据的write()方法。9.1 9.1 文件文件Java使用File类创建的对象来获取文件本身的一些信息,例如文件所在的目录、文件的长度 、文件读写权限等,文件对象并不涉及对文件 的读写操作。创建一个File对象的构造方法有3个:File(String filename);File(String directoryPath,String filename);File(File f,String filename);使用File(String filename)创建文件时,该文件被认为是与当前应用程序在同一目录中。1文件的属性使用File类的下列方法获取文件本身的一些信息: publ

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

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

6、部文件。 public File listFiles()用File对象形式返回目录下的全部文件。File类的下述两个方法可以列出指定类型的文件: public String list(FilenameFilter obj)用字符串形式返回目录下的指定类型的所有文件。 public File listFiles(FilenameFilter obj)用File对象返回目录下的指定类型所有文件。FilenameFile是一个接口,该接口有一个方法:public boolean accept(File dir,String name);3文件的创建与删除当使用File类创建一个文件对象后,如File

7、 f=newFile(“C:myletter“,“letter.txt“);如果C:myletter目录中没有名字为letter.txt文件,文 件对象f调用方法public boolean createNewFile()可以在C:myletter目录中建立一个名字为letter.txt的文件。文件对象调用方法public boolean delete()可以删除当前文件,如f.delete();例9-1列出C:/1000目录下扩展名是.java文件的名 字以及它们的大小,并删除C:/1000中的一个 .java文件。4运行可执行文件当要执行一个本地机上的可执行文件时,可以使用 java.la

8、ng包中的Runtime类。首先使用Runtime类声明一个对象,如Runtime ec; 然后使用该类的静态getRuntime()方法创建这个对象ec=Runtime.getRuntime();ec可以调用exec(String command)方法打开本地机的可执行文件或执行一个操作。例9-2中,Runtime对象打开windows平台上的绘图程序和记事本程序。9.2 9.2 文件字节流文件字节流1FileInputStream类FileInputStream类是InputStream的子类,称为文件字节输入流。文件字节输入流按字节读取文件中的数据 。该类的所有方法都是从InputStr

9、eam类继承来的。为了 创建FileInputStream类的对象,可以使用下列构造方法:FileInputStream(String name)使用给定的文件名name 创建一个FileInputStream对象。FileInputStream(File file) 使用File对象创建 FileInputStream对象。构造方法参数指定的文件称作输入流的源,输入流通过 使用read()方法从输入流读出源中的数据。使用文件输入流构造器建立通往文件的输 入流时,可能会出现错误(也被称为异常)。例如 ,试图要打开的文件不存在,就出现I/O错误, Java生成一个出错信号,它使用一个IOExce

10、ption对象来表示这个出错信号。程序必须使用一个 try-catch块检测并处理这个异常。输入流的唯一目的是提供通往数据的通道 ,程序可以通过这个通道读取数据,read方法给程序提供一个从输入流中读取数据的基本方法 。read()方法的格式如下:int read();read()方法从输入流中顺序读取单个字节的 数据。该方法返回字节值(0255之间的一个整数 ),读取位置到达文件末尾,则返回-1。read方法还有其它一些形式。这些形式能使程序把多个字节读到一个字节数组中:int read(byte b);int read(byte b,int off,int len); 其中,off参数指定

11、read方法把数据存放在字节数组b中的 位置,len参数指定该方法将读取的最大字节数。上面这 两个read方法都返回实际读取的字节个数,如果它们到 达输入流的末尾,则返回-1。FileInputStream流顺序地读取文件,只要不关闭流 ,每次调用read()方法就顺序地读取文件中其余的内容,直到文件的末尾或流被关闭。2FileOutputStream类FileOutputStream提供了基本的文件写入能力,是 OutputStream的子类,称为文件字节输出流。文件字节输出流按字节将数据写入到文件中。为了创建 FileOutputStream类的对象,可以使用下列构造方法: FileOut

12、putStream(String name)使用给定的文件名name创 建一个FileOutputStream对象。 FileOutputStream(File file) 使用File对象创建 FileOutputStream对象。构造方法参数指定的文件称作输出流的目的地,输 出流通过使用write()方法把数据写入输出流到达目的地。FileOutputStream对象可以使用write()方法把 字节发送给输出流。write的用法如下: public void write(byte b)写b.length个字节到输出流。 public void write(byte b,int off,i

13、nt len)从给定 字节数组中起始于偏移量off处写len个字节到输 出流,参数b是存放了数据的字节数组。FileOutStream流顺序地写文件,只要不关闭 流,每次调用writer方法就顺序地向文件写入内容,直到流被关闭。如果输出流要写入数据的 文件已经存在,该文件中的数据内容就会被刷 新;如果要写入数据的文件不存在,该文件就 会被建立。例9-3中,首先将“欢迎Welcome”写入到 “hello.txt”中,然后再读取该文件中的内容。9.3 9.3 文件字符流文件字符流1FileReader类FileReader类是Reader的子类,称为文件字符输入流。为了创建FileReader类

14、的对象,可以使用下列构造方法:FileReader(String name)使用给定的文件名name创建 一个FileReader对象。FileReader(File file) 使用File对象创建FileReader对象。 构造方法参数指定的文件称作输入流的源,输入流通过 使用read()方法从输入流读出源中的数据。 int read()输入流调用该方法从源中读取一个字符,该 方法返回一个整数(Unicode字符值),如果未读出字符就 返回-1。 int read(char b)输入流调用该方法从源中读取b.length 个字符到字符数组b中,返回实际读取的字符数目。如 果到达文件的末尾,

15、则返回-1。 int read(char b,int off,int len)输入流调用该方法从源 中读取len个字符并存放到字符数组b中,返回实际读取 的字符数目。如果到达文件的末尾,则返回-1。其中, off参数指定read方法从符数组b中的什么地方存放数据。2FileWriter类FileWriter提供了基本的文件写入能力。FileWriter类 是Writer的子类,称为文件字符输出流。文件字符输出 流按字符将数据写入到文件中。为了创建FileWriter类的对象,可以使用下列构造方法:FileWriter(String name)使用给定的文件名name创建 一个FileWrite

16、r对象。FileWriter(File file)使用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个字符到输出流。例9-4中,首先用字符输出流向一个文件写入若干个字符,然

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

当前位置:首页 > 行业资料 > 其它行业文档

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