Java教材课件输入输出流编程.ppt
《Java教材课件输入输出流编程.ppt》由会员分享,可在线阅读,更多相关《Java教材课件输入输出流编程.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1313章章 输入输出流编程输入输出流编程教学目的要求教学目的要求1.1.理解理解 java java 语言中输入语言中输入/输出流输出流的处理方法;的处理方法;2.2.掌握文件、字节流和字符流的处掌握文件、字节流和字符流的处理方法,正确使用对象串行化的理方法,正确使用对象串行化的方法。方法。13.1 File类应用举例类应用举例 文件操作是程序设计必不可少的部分。文件操作是程序设计必不可少的部分。计算机把需要长期保存的数据以文件的计算机把需要长期保存的数据以文件的形式存放在各种外部存储设备上。在需形式存放在各种外部存储设备上。在需要输入数据时,从文件读出数据;而需要输入数据时,从文件读出
2、数据;而需要输出数据时,把数据写入文件。要输出数据时,把数据写入文件。13.1.1 File类用来获取文件或目录类用来获取文件或目录的信息的信息 Java把目录看成特殊的文件把目录看成特殊的文件,作为文作为文件名的列表处理,件名的列表处理,File类提供方法用以访类提供方法用以访问诸如路径、名称、大小、日期、读写问诸如路径、名称、大小、日期、读写属性等文件或目录的信息。也可以创建、属性等文件或目录的信息。也可以创建、删除文件、改变文件名、创建目录等。删除文件、改变文件名、创建目录等。File类的直接父类是类的直接父类是Object。1.File类的构造方法类的构造方法File类中常用的构造方法
3、如下:类中常用的构造方法如下:public File(String pathname)其中的其中的pathname是路径名字符串。该构造方法通过是路径名字符串。该构造方法通过将给定路径名字符串转换成抽象路径名来创建一个新将给定路径名字符串转换成抽象路径名来创建一个新File实例。若给定字符串实例。若给定字符串pathname是空字符串,则结是空字符串,则结果是空的抽象路径名。果是空的抽象路径名。public File(File parent,String child)其中的其中的parent是父抽象路径名、是父抽象路径名、child是子路径名字是子路径名字符串。该构造方法根据符串。该构造方法根
4、据parent抽象路径名和抽象路径名和child路径路径名字符串创建一个新名字符串创建一个新File实例。实例。public File(String parent,String child)其中参数其中参数parent是父路径名字符串、是父路径名字符串、child是子路径是子路径名字符串。该构造方法根据名字符串。该构造方法根据parent路径名字符串和路径名字符串和child路径名字符串创建一个新路径名字符串创建一个新File实例。如果实例。如果parent为为null,则创建一个新的,则创建一个新的File实例,这与调用单参数实例,这与调用单参数File方法,以给定方法,以给定child路径
5、名字符串作为参数的效果一样。路径名字符串作为参数的效果一样。否则,否则,parent路径名字符串用于表示目录,而路径名字符串用于表示目录,而child路路径名字符串用于表示目录或文件。如果径名字符串用于表示目录或文件。如果 child路径名字路径名字符串是绝对路径名,则用与系统有关的方式将它转换符串是绝对路径名,则用与系统有关的方式将它转换成一个相对路径名。如果成一个相对路径名。如果parent是空字符串,则新的是空字符串,则新的File实例是通过将实例是通过将child转换成抽象路径名并根据与系统转换成抽象路径名并根据与系统有关的默认目录来分析结果而创建的。否则,将每个有关的默认目录来分析结
6、果而创建的。否则,将每个路径名字符串转换成一个抽象路径名,并根据父抽象路径名字符串转换成一个抽象路径名,并根据父抽象路径名分析子抽象路径名。路径名分析子抽象路径名。2.File类中的常用成员方法类中的常用成员方法 File类中有许多成员方法,常用的成类中有许多成员方法,常用的成员方法及其功能概要描述见表员方法及其功能概要描述见表13-1。限于。限于篇幅的原因,读者在使用时可以参考篇幅的原因,读者在使用时可以参考Java API中对这些成员方法用法详细的中对这些成员方法用法详细的说明。说明。public boolean canRead()测试应用程序能否读此对象指定的文件测试应用程序能否读此对象
7、指定的文件public boolean canWrite()测试应用程序能否写此对象指定的文件测试应用程序能否写此对象指定的文件public boolean exists()测试此抽象路径名表示的文件或目录是否存测试此抽象路径名表示的文件或目录是否存public boolean isFile()测试此抽象路径名表示的文件是否是一个标准测试此抽象路径名表示的文件是否是一个标准文件文件public String getAbsolutePath()返回抽象路径名的绝对路径名字符串返回抽象路径名的绝对路径名字符串public String getPath()将此抽象路径名转换为一个路径名字符串将此抽象
8、路径名转换为一个路径名字符串public String getParent()获取此对象指定的文件的父目录获取此对象指定的文件的父目录public boolean mkdir()根据当前对象生成一个由该对象指定的路径根据当前对象生成一个由该对象指定的路径public String list()列出当前目录下的文件列出当前目录下的文件public long length()返回由此抽象路径名表示的文件的长度返回由此抽象路径名表示的文件的长度public String getName()获取此对象指定的文件的文件名获取此对象指定的文件的文件名public boolean delete()删除此抽象
9、路径名表示的文件或目录删除此抽象路径名表示的文件或目录public long lastModified()获取此对象指定文件的最后修改时间获取此对象指定文件的最后修改时间(以长以长整型值表示整型值表示)表表13-1 File类中的常用成员方法方类中的常用成员方法方法和描述法和描述3.类变量(静态数据成员)类变量(静态数据成员)File类中的静态数据成员及其概要描述见表类中的静态数据成员及其概要描述见表13-2。表表13-2 File类中的静态数据成员类中的静态数据成员成员描述publicstaticStringpathSeparator与系统有关的路径分隔符字符publicstaticchar
10、pathSeparatorChar与系统有关的默认路径分隔符字符publicstaticStringseparator与系统有关的默认名称分隔符publicstaticcharseparatorChar与系统有关的默认名称分隔符/测试给定平台上的文件系统的文件的路径分隔字符等测试给定平台上的文件系统的文件的路径分隔字符等import java.io.*;class Li13_01public static void main(String args)System.out.println(File.pathSeparator);System.out.println(File.pathSepara
11、torChar);System.out.println(File.separator);System.out.println(File.separator+nn);例例13.1测试静态数据成员测试静态数据成员属性。属性。/用用File类的构造方法构造文件对象并测试该类的成员方法类的构造方法构造文件对象并测试该类的成员方法import java.io.*;public class Li13_02 public static void main(String args)File file=new File(d:jdk15FileMethod.java);(可读可读?+file.canRead();
12、(可写可写?+file.canWrite();(文件存在文件存在?+file.exists();(是文件是文件?+file.isFile();(是目录是目录?+file.isDirectory();(文件长度文件长度=+file.length();(文件最后修改日期文件最后修改日期:+file.lastModified();(文件名文件名:+file.getName();(文件存放路径文件存放路径:+file.getPath();(文件存放路径的父目录文件存放路径的父目录:+file.getParent();例例13.2构造构造File对象、测试文件的属性等有对象、测试文件的属性等有关信息应用
13、举例。关信息应用举例。注意,本例程序在运行前,读者应确保注意,本例程序在运行前,读者应确保d:jdk15文件夹中有文件夹中有FileMethod.java,当然,当然,文件夹的名字也可由读者命名,但是,要注意文件夹的名字也可由读者命名,但是,要注意同时更改程序中的相应文件夹名称。同时更改程序中的相应文件夹名称。例例13.3构造一个目录构造一个目录File对象,如果该对象,如果该指定的目录不存则创建该目录,同时统计并显指定的目录不存则创建该目录,同时统计并显示该目录下文件和子目录的个数以及该目录下示该目录下文件和子目录的个数以及该目录下文件的总长度。文件的总长度。import java.io.*
14、;public class Li13_03 public static void main(String args)throws Exception File file=new File(d:/jdk15006/lib);if(!file.exists()file.mkdir();System.out.println(file.getPath();System.out.println(file.getParent();/变量变量tsize记录文件的总长度记录文件的总长度,变量变量fc,dc分别记录给定目录下的文件数和子分别记录给定目录下的文件数和子目录数目录数 int tsize=0,fc=0
15、,dc=0;File files=new File(d:/jdk15006).listFiles();for(int i=0;ifiles.length;i+)if(filesi.isFile()fc+;else dc+;tsize+=filesi.length();(文件数文件数:+fc+t目录数目录数:+dc+t文件总长度文件总长度:+tsize);13.1.2 文件的处理文件的处理 文件输入文件输入/输出流类输出流类FileInputStream和和FileOutputStream提供了对文件顺序读提供了对文件顺序读/写的方法。文件输入流类写的方法。文件输入流类FileInputStre
16、am用于读取文件中的字节用于读取文件中的字节数据,其直接父类为数据,其直接父类为InputStream;文件;文件输出流类输出流类FileOutputStream用于向文件写用于向文件写入的字节数据,其直接父类为入的字节数据,其直接父类为OutputStream。1.FileInputStream类的构造方类的构造方法法public FileInputStream(String name)其中的其中的name可以包含路径名和文件名,该构造方可以包含路径名和文件名,该构造方法通过打开一个到实际文件的连接来创建一个法通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文
17、件系统中的路径名,该文件通过文件系统中的路径名name指定。指定。public FileInputStream(File file)其中的其中的file是是File类的对象,该构造方法通过打开一类的对象,该构造方法通过打开一个到实际文件的连接来创建一个个到实际文件的连接来创建一个FileInputStream,该,该文件通过文件系统中的文件通过文件系统中的 File对象对象file指定。指定。public FileInputStream(FileDescriptor fd)该构造方法通过使用文件描述符该构造方法通过使用文件描述符fdObj创建一个创建一个FileInputStream,该文件描
18、述符表示到文件系统中某,该文件描述符表示到文件系统中某个实际文件的现有连接。个实际文件的现有连接。2.FileOutputStream类的构造方法类的构造方法public FileOutputStream(String name)该构造方法使用指定的字符串该构造方法使用指定的字符串name创建一个向具有创建一个向具有指定名称的文件中写入数据的输出文件流。指定名称的文件中写入数据的输出文件流。public FileOutStream(File file)该构造方法使用指定的文件该构造方法使用指定的文件file创建一个向指定创建一个向指定File对象表示的文件中写入数据的文件输出流。对象表示的文件
19、中写入数据的文件输出流。public FileOutputStream(File file,boolean append)创建一个向指定创建一个向指定File对象表示的文件中写入数据的对象表示的文件中写入数据的文件输出流。如果第二个参数为文件输出流。如果第二个参数为 true,则将字节写入,则将字节写入文件末尾处,而不是写入文件开始处。文件末尾处,而不是写入文件开始处。3.FileInputStream类的成员方类的成员方法法 FileInputStream类中的成员方法被调用时会产生类中的成员方法被调用时会产生IOException异常,常用成员方法见表异常,常用成员方法见表13-3中的描述
20、。表中的描述。表13-3 FileInputStream类中的常用成员方法类中的常用成员方法方法描述publicintread()从输入流中读取一个数据字节publicintread(byteb)从输入流中读取的字节数据存放在字节数组b中publicintread(byteb,intoff,intlen)从输入流中读取的len个字节数据存放在字节数组b中,offset开始存放publiclongskip(longn)从输入流中跳过n个字节publicvoidclose()关闭输入流4.FileOutputStream类的成员方类的成员方法法 FileOutputStream类中的成员方法被调用
21、时会产生类中的成员方法被调用时会产生IOException异常,常用成员方法见表异常,常用成员方法见表13-4中的描述。表中的描述。表13-4 FileOutputStream类中的常用成员方法类中的常用成员方法:方法描述publicintwrite(intb)将指定字节写入此文件输出流publicintwrite(byteb)将b.length个字节从指定字节数组写入此文件输出流中publicintwrite(byteb,intoff,intlen)将指定字节数组中从偏移量off开始的len个字节写入此文件输出流publicvoidclose()关闭输出流例例13.4读文件和写文件举例。假设
22、在读文件和写文件举例。假设在D:有文件有文件Li13_04.java,编程实现把该编程实现把该文件原样复制后存放在文件原样复制后存放在C:,文件名为,文件名为Li13_04_FileCopy.txt。import java.io.*;class Li13_04 public static void main(String args)int length;byte buf=new byte1024;try FileInputStream in;FileOutputStream out;in=new FileInputStream(d:Li13_04.java);/运行前要保证运行前要保证d:有有
23、Li13_04.java这个文件这个文件 out=new FileOutputStream(c:Li13_04_FileCopy.txt);(文件拷贝输出成功。文件拷贝输出成功。);while(length=in.read(buf,0,1024)!=-1)out.write(buf,0,length);catch(IOException e)System.out.println(Error:+e);System.exit(-1);13.2 Reader与与Writer类应用举例类应用举例 从从JDK1.1开始,开始,java.io包中加入了专包中加入了专门用于处理字符流输入门用于处理字符流输入
24、/输出的类,它们输出的类,它们的基类分别是抽象类的基类分别是抽象类Reader及抽象类及抽象类Writer。13.2.1 Reader和和Writer Java提供了一系列用于处理字符流的提供了一系列用于处理字符流的接口和类,如接口和类,如Reader和和Writer类,通过类,通过它们派生的子类对象来处理字符流。它们派生的子类对象来处理字符流。Reader类和类和Writer类提供的方法分别类提供的方法分别见表见表13-5和表和表13-6中的描述,注意它们被中的描述,注意它们被调用时也会产生异常。调用时也会产生异常。表表13-5 Reader类中的常用方法类中的常用方法方法描述publici
25、ntread()读取单个字符。返回作为整数读取的字符,范围在0到65535之间publicintread(charcbuf)将字符读入数组,cbuf是目标缓冲区publicabstractintread(charcbuf,intoff,intlen)将字符读入数组的某一部分,从off开始存放len个publiclongskip(longn)跳过n个字符publicabstractvoidclose()关闭输入流表表13-6 Writer类中的常用方法类中的常用方法publicintwrite(intc)写入单个字符,c是要写入字符的int值publicintwrite(charcbuf)写入字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 教材 课件 输入输出 编程
限制150内