《Java程序设计教程》-赵辉-电子教案 第10章 输入输出处理

上传人:E**** 文档编号:89401077 上传时间:2019-05-24 格式:PPT 页数:38 大小:947.01KB
返回 下载 相关 举报
《Java程序设计教程》-赵辉-电子教案 第10章 输入输出处理_第1页
第1页 / 共38页
《Java程序设计教程》-赵辉-电子教案 第10章 输入输出处理_第2页
第2页 / 共38页
《Java程序设计教程》-赵辉-电子教案 第10章 输入输出处理_第3页
第3页 / 共38页
《Java程序设计教程》-赵辉-电子教案 第10章 输入输出处理_第4页
第4页 / 共38页
《Java程序设计教程》-赵辉-电子教案 第10章 输入输出处理_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《《Java程序设计教程》-赵辉-电子教案 第10章 输入输出处理》由会员分享,可在线阅读,更多相关《《Java程序设计教程》-赵辉-电子教案 第10章 输入输出处理(38页珍藏版)》请在金锄头文库上搜索。

1、第10章 输入输出处理,本章内容提要,10.1 输入输出流简介,流是指在计算机的输入与输出之间运动的数据序列。 根据操作类型的不同,流可以分为输入流和输出流。用来从程序中读取数据的流称为输入流,而用来向程序中写入数据的流称为输出流。 输入输出系统通过流与物理设备相连接,尽管与它们连接的物理设备不尽相同,但所有的流的行为具有同样的方式。,10.2 java.io包,Java中数据输入输出的所有功能都是通过java.io包中的类和接口完成。,10.3 文件,Java中的抽象类File提供了一些方法来操纵文件和获得文件的信息。 创建文件对象 File类的对象主要用来获取文件本身的一些信息,不涉及对文

2、件的读写操作。,Java提供了三种构造方法来创建一个文件对象。 File(String filename) File(String directoryPath,String filename) File(File f, String filename),10.3 文件,/根据参数指定的文件路径来创建一个File文件对象 File file1=new File( “c:testabc. txt“); /根据给定的目录来创建一个File对象,指定其目录和文件名 File file2=new File( “c:test“,“abc. txt“); /根据已知的目录文件对象File来创建一个新的Fil

3、e实体对象 File file3=new File(fiie2,“abc. txt“);,10.3 文件,以上三种方法只是生成一个文件对象,但没有生成真正的文件,如果要生成实实在在的文件,就需要调用createNewFile ( )方法。,例10-1创建文件对象,10.3 文件,文件操作 File类所提供的方法分为两类,一类针对文件的处理,另一类针对目录的处理。,10.3 文件,例10-2 获取文件的信息,Name: Test10_2.java Path: C:Test10_2.java 文件存在 文件是可读的 文件是可写的 文件长度为424 bytes.,10.3 文件,目录操作,1创建目录

4、 Java提供了File类的重载构造方法来生成一个目录对象。通过该构造方法只是生成一个目录对象,如果要生成实实在在的目录,就需要调用mkdir()方法。 File(String directoryPath),10.3 文件,2列出目录中的文件 如果File对象是一个目录,那么该对象可以调用下述方法列出该目录下的文件和子目录: public String list() /用字符串形式返回目录下的全部文件 public File listFiles() /用File对象形式返回目录下的全部文件,10.3 文件,Java中可以使用File类的下述两个方法,列出指定类型的文件: public Stri

5、ng list(FilenameFilter obj) 该方法用字符串形式返回目录下的指定类型的所有文件。 public File listFiles(FilenameFilter obj) 该方法用File对象返回目录下的指定类型所有文件。,10.3 文件,例10-3 列出 c:java 目录下的所有java文件,FilenameFile是一个接口,该接口有一个方法: public boolean accept(File dir,String name),10.3 文件,运行可执行文件 当要执行一个本地机器上的可执行文件时,可以使用java.lang包中的Runtime类。首先使用Runti

6、me类声明一个对象,然后使用该类的静态getRuntime()方法创建这个对象。 例如: Runtime ec; ec = Runtime.getRuntime();,10.3 文件,10.4 字节流,抽象类InputStream是所有字节输入流的基类,抽象类OutputStream是所有字节输出流的基类。 因为InputStream和OutputStream都是抽象类,所以不能直接生成对象,而是要通过覆盖其抽象方法的继承类来创建程序中所需要的对象。,InputStream类和OutputStream类,1InputStream 类 InputStream类中定义了与字节输入流操作有关的方法,

7、可以完成从输入流中读入数据的功能. 2.OutputStream类 OutputStream类定义了所有字节输出流中的方法,可以完成写入数据的功能,10.4 字节流,FileInputStream类和FileOutputStream类 1FileInputStream 类 创建文件输入流 为了创建FileInputStream 类的对象,用户可以调用它的构造方法。下面列出了两个构造方法: FileInputStream(String name) FileInputStream(File file),10.4 字节流,处理 I/O 异常 当使用文件输入流构造方法建立文件输入流时,可能会出现IOE

8、xception程序必须使用一个try-catch块检测并处理这个异常。 为了把一个文件输入流对象与一个文件关联起来,使用类似于下面所示的代码: try /创建输入流 FileInputStream ins = new FileInputStream(“myfile.dat“); catch (IOException e ) System.out.println(“File read error: “ +e );,10.4 字节流,从输入流中读取字节 输入流的作用是提供通往数据的通道,程序可以通过这个通道读取数据。Java中的read()方法完成了从输入流中读取数据的功能。read()方法的格

9、式如下: int read(); int read(byte b); int read(byte b, int off, int len);,10.4 字节流,关闭流 如果没有关闭那些被打开的流,当另一个程序试图打开这个流时,则可能会出现错误。 关闭输出流的另一个原因是把该流缓冲区的内容冲洗掉。,10.4 字节流,2FileOutputStream 类 FileOutputStream提供了文件的写入能力。FileOutputStream类有2个构造方法: FileOutputStream(String name) FileOutputStream(File file) 可以使用 write

10、方法把字节发送给输出流,如下所示: public void write(byte b) public void.write(byte b,int off,int len),10.4 字节流,例10-6 使用字节流写文件,10.4 字节流,10.5 字符流,1.Reader和Writer 对字符文件(如文本文件)的处理是以Unicode字符为基本单位的。Reader和Writer就解决了这个问题,它们可以以字符为单位处理数据流。 Reader和Writer也是两个抽象基类,只是提供了一些用于字符流处理的方法,本身不能用来生成实例。Java类库中所有进行字符流处理的类都基于Reader和Write

11、r这两个类。,10.5 字符流,10.5 字符流,2.FileReader类和FileWriter类 FileReader和FileWriter类分别是Reader和Writer的子类。 类FileReader创建了一个可以读取文件内容的Reader类。它最常用的构造方法如下: public FileReader(String filePath) public FileReader(File fileObj),10.5 字符流,类FileWriter创建一个可以写文件的Writer类。它最常用的构造方法如下: public FileWriter(String filePath) public

12、FileWriter(String filePath,boolean append) public FileWriter(File fileObj),10.5 字符流,3.BufferedReader类和BufferedWriter类 BufferedReader类的构造方法如下: BufferedReader (Reader in) 例如: BufferedReader in = BufferedReader(new FileReader(“Student.txt“); BufferedReader流能够读取文本行,方法是readLine()。,10.5 字符流,可以将BufferedWri

13、ter流和FileWriter流连接在一起,然后使用BufferedWriter流将数据以确定长度字符串的形式写到目的地. 例如: FileWriter tofile = new FileWriter(“hello.txt“); BufferedWriter out = BufferedWriter(tofile);,10.5 字符流,例10-7文件编辑,1.下面关于Java中的类的说法正确的是()。 A.J2SE B.JRE C.J2EE D.J2ME 答案:ACD,10.5 字符流,10.6 RandomAccessFile 类,Java语言中还定义了另一个功能更强大、使用更方便的Rand

14、omAccessFile类,它可以实现对文件的随机读写操作。 RandomAccessFile类既不是输入流的子类,也不是输出流的子类,但是RandomAccessFile类创建的流既可以是输入流也可以是输出流。,1创建RandomAccessFile对象 RandomAccessFile 类有以下两个构造方法: RandomAccessFile(String name,String mode) RandomAccessFile(File file,String mode) 例如: File f1=new File(“a.txt“); RandomAccessFile myf1=new Ran

15、domAccessFile(f1,“rw“);,10.6 RandomAccessFile 类,2对文件位置指针的操作 RandomAccessFile实现的是随机读写,即可以在文件的任意位置执行数据读写。 long getFilePointer() void seek(long pos) int skipBytes(int n),10.6 RandomAccessFile 类,RandomAccessFile对象的文件位置指针遵循如下的规律: 新建RandomAccessFile对象的文件位置指针位于文件的开头处。 每次读写操作之后,文件位置指针都相应后移读写相应的字节数。 利用getFilePointer()方法可以获取当前文件位置指针从文件头算起的绝对位置。 利用seek()方法可以移动文件指针位置。,10.6 RandomAccessFile 类,10.6 RandomAccessFile 类,10.6 RandomAccessFile 类,例10-8将整型数据文件逆序输出,10,9,8,7,6,5,4,3,2,1,10.6 RandomAccessFile 类,

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

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

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