Java教材课件输入输出流编程.ppt
《Java教材课件输入输出流编程.ppt》由会员分享,可在线阅读,更多相关《Java教材课件输入输出流编程.ppt(48页珍藏版)》请在三一办公上搜索。
1、第13章 输入输出流编程,教学目的要求1.理解 java 语言中输入/输出流的处理方法;2.掌握文件、字节流和字符流的处理方法,正确使用对象串行化的方法。,13.1 File类应用举例,文件操作是程序设计必不可少的部分。计算机把需要长期保存的数据以文件的形式存放在各种外部存储设备上。在需要输入数据时,从文件读出数据;而需要输出数据时,把数据写入文件。,13.1.1 File类用来获取文件或目录的信息,Java把目录看成特殊的文件,作为文件名的列表处理,File类提供方法用以访问诸如路径、名称、大小、日期、读写属性等文件或目录的信息。也可以创建、删除文件、改变文件名、创建目录等。File类的直接
2、父类是Object。,1.File类的构造方法,File类中常用的构造方法如下:public File(String pathname)其中的pathname是路径名字符串。该构造方法通过将给定路径名字符串转换成抽象路径名来创建一个新File实例。若给定字符串pathname是空字符串,则结果是空的抽象路径名。public File(File parent,String child)其中的parent是父抽象路径名、child是子路径名字符串。该构造方法根据parent抽象路径名和child路径名字符串创建一个新File实例。,public File(String parent,String
3、child)其中参数parent是父路径名字符串、child是子路径名字符串。该构造方法根据parent路径名字符串和child路径名字符串创建一个新File实例。如果parent为null,则创建一个新的File实例,这与调用单参数File方法,以给定child路径名字符串作为参数的效果一样。否则,parent路径名字符串用于表示目录,而child路径名字符串用于表示目录或文件。如果 child路径名字符串是绝对路径名,则用与系统有关的方式将它转换成一个相对路径名。如果parent是空字符串,则新的File实例是通过将child转换成抽象路径名并根据与系统有关的默认目录来分析结果而创建的。否
4、则,将每个路径名字符串转换成一个抽象路径名,并根据父抽象路径名分析子抽象路径名。,2.File类中的常用成员方法,File类中有许多成员方法,常用的成员方法及其功能概要描述见表13-1。限于篇幅的原因,读者在使用时可以参考Java API中对这些成员方法用法详细的说明。,public boolean canRead()测试应用程序能否读此对象指定的文件public boolean canWrite()测试应用程序能否写此对象指定的文件public boolean exists()测试此抽象路径名表示的文件或目录是否存public boolean isFile()测试此抽象路径名表示的文件是否是
5、一个标准文件public String getAbsolutePath()返回抽象路径名的绝对路径名字符串public String getPath()将此抽象路径名转换为一个路径名字符串public String getParent()获取此对象指定的文件的父目录public boolean mkdir()根据当前对象生成一个由该对象指定的路径public String list()列出当前目录下的文件public long length()返回由此抽象路径名表示的文件的长度public String getName()获取此对象指定的文件的文件名public boolean delete(
6、)删除此抽象路径名表示的文件或目录public long lastModified()获取此对象指定文件的最后修改时间(以长整型值表示),表13-1 File类中的常用成员方法方法和描述,3.类变量(静态数据成员),File类中的静态数据成员及其概要描述见表13-2。表13-2 File类中的静态数据成员,/测试给定平台上的文件系统的文件的路径分隔字符等import java.io.*;class Li13_01public static void main(String args)System.out.println(File.pathSeparator);System.out.printl
7、n(File.pathSeparatorChar);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();(可写?+file.canWrite
8、();(文件存在?+file.exists();(是文件?+file.isFile();(是目录?+file.isDirectory();(文件长度=+file.length();(文件最后修改日期:+file.lastModified();(文件名:+file.getName();(文件存放路径:+file.getPath();(文件存放路径的父目录:+file.getParent();,例13.2构造File对象、测试文件的属性等有关信息应用举例。,注意,本例程序在运行前,读者应确保d:jdk15文件夹中有FileMethod.java,当然,文件夹的名字也可由读者命名,但是,要注意同时更
9、改程序中的相应文件夹名称。例13.3构造一个目录File对象,如果该指定的目录不存则创建该目录,同时统计并显示该目录下文件和子目录的个数以及该目录下文件的总长度。,import java.io.*;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.get
10、Parent();/变量tsize记录文件的总长度,变量fc,dc分别记录给定目录下的文件数和子目录数 int tsize=0,fc=0,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提供了对文件顺序读/
11、写的方法。文件输入流类FileInputStream用于读取文件中的字节数据,其直接父类为InputStream;文件输出流类FileOutputStream用于向文件写入的字节数据,其直接父类为OutputStream。,1.FileInputStream类的构造方法,public FileInputStream(String name)其中的name可以包含路径名和文件名,该构造方法通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的路径名name指定。public FileInputStream(File file)其中的file是File类的对象
12、,该构造方法通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的 File对象file指定。public FileInputStream(FileDescriptor fd)该构造方法通过使用文件描述符fdObj创建一个FileInputStream,该文件描述符表示到文件系统中某个实际文件的现有连接。,2.FileOutputStream类的构造方法,public FileOutputStream(String name)该构造方法使用指定的字符串name创建一个向具有指定名称的文件中写入数据的输出文件流。public FileOutStream(Fi
13、le file)该构造方法使用指定的文件file创建一个向指定File对象表示的文件中写入数据的文件输出流。public FileOutputStream(File file,boolean append)创建一个向指定File对象表示的文件中写入数据的文件输出流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。,3.FileInputStream类的成员方法,FileInputStream类中的成员方法被调用时会产生IOException异常,常用成员方法见表13-3中的描述。表13-3 FileInputStream类中的常用成员方法,4.FileOutputSt
14、ream类的成员方法,FileOutputStream类中的成员方法被调用时会产生IOException异常,常用成员方法见表13-4中的描述。表13-4 FileOutputStream类中的常用成员方法:,例13.4读文件和写文件举例。假设在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 FileInputSt
15、ream in;FileOutputStream out;in=new FileInputStream(d:Li13_04.java);/运行前要保证d:有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与Write
16、r类应用举例,从JDK1.1开始,java.io包中加入了专门用于处理字符流输入/输出的类,它们的基类分别是抽象类Reader及抽象类Writer。,13.2.1 Reader和Writer,Java提供了一系列用于处理字符流的接口和类,如Reader和Writer类,通过它们派生的子类对象来处理字符流。Reader类和Writer类提供的方法分别见表13-5和表13-6中的描述,注意它们被调用时也会产生异常。,表13-5 Reader类中的常用方法,表13-6 Writer类中的常用方法,13.2.2 InputStreamReader和OutputStreamWriter,InputStr
17、eamReader从输入流中读取字节数据,并将其转换为特定的平台上的字符数据,其构造方法为:public InputStreamReader(InputStream in)其中参数in是InputStream的对象,该构造方法可以创建一个使用默认字符集的InputStreamReader。public InputStreamReader(InputStream in,String enc)创建使用指定字符集的InputStreamReader。InputStreamReader的成员方法描述见表13-7,注意这些方法在被调用时也会产生异常。,表13-7 InputStreamReader类中的
18、常用方法,OutputStreamWriter将特定平台的字符数据转换为字节数据,写入到输出流,其构造方法为:,public OutputStreamWriter(OutputStream out)其中参数out是OutputStream对象,该构造方法用来创建使用默认字符编码的 OutputStreamWriter。public OutputStreamWriter(OutputStream out,String enc)其中参数out是 OutputStream对象,参数enc是字符串名称,该构造方法创建使用指定字符集的 OutputStreamWriter。OutputStreamWri
19、ter的成员方法描述见表13-8,注意这些方法在被调用时也会产生异常。,表13-8 OutputStreamWriter类中的常用方法,例13.5读字符流文件:从给定的输入文件中读取字符流并在标准终端显示。,import java.io.*;public class Li13_05 public static void main(String args)throws IOException int c;FileInputStream is;InputStreamReader ir;is=new FileInputStream(CharInput.java);ir=new InputStream
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 教材 课件 输入输出 编程
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6509824.html