Java程序设计教程 第2版教学课件 ppt 作者 刘慧琳 第10章 IO输入输出流

上传人:E**** 文档编号:89368856 上传时间:2019-05-24 格式:PPT 页数:34 大小:863.50KB
返回 下载 相关 举报
Java程序设计教程 第2版教学课件 ppt 作者  刘慧琳 第10章 IO输入输出流_第1页
第1页 / 共34页
Java程序设计教程 第2版教学课件 ppt 作者  刘慧琳 第10章 IO输入输出流_第2页
第2页 / 共34页
Java程序设计教程 第2版教学课件 ppt 作者  刘慧琳 第10章 IO输入输出流_第3页
第3页 / 共34页
Java程序设计教程 第2版教学课件 ppt 作者  刘慧琳 第10章 IO输入输出流_第4页
第4页 / 共34页
Java程序设计教程 第2版教学课件 ppt 作者  刘慧琳 第10章 IO输入输出流_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《Java程序设计教程 第2版教学课件 ppt 作者 刘慧琳 第10章 IO输入输出流》由会员分享,可在线阅读,更多相关《Java程序设计教程 第2版教学课件 ppt 作者 刘慧琳 第10章 IO输入输出流(34页珍藏版)》请在金锄头文库上搜索。

1、第10章 I/O输入输出流,流是Java语言中,用来处理I/O(输入/输出)的方式。采用流的方式,使得程序员在处理不同的数据或数据存储时,更加的方便、鲜明和统一。由于文件是计算机用来保存大量数据的地方,因此,对应不同的数据类型,程序员可以采用不同类型的流,读取文件的内容或是向文件中写入数据。,10.1 流概述,正在本章中,将会介绍Java中用来操作文件和目录的方法,以及对文件进行读写操作的方法。同任何其他编程语言一样,Java语言具备强大的文件处理功能。通过流,程序员可以把数据从一个地方带到另一个地方。,10.1.1 什么是流,流,顾名思义是传递数据信息的载体,是程序中的数据所经历的路径。当然

2、流分为输入流和输出流两大部分。输入流是将数据从数据源传递给程序;而输出流则是将数据从程序送到期望的地方比如:内存、文件等。,10.1.2 输入输出类结构,Java的I/O流库提供了大量的流类,均包含在java.io包中。所有的输入流类都是InputStream(输入流)抽象类的子类,而所有的输出流都是OutputStream(输出流)抽象类的子类。 InputStream类派生关系图,10.1.2 输入输出类结构,OutputStream类派生关系图,10.1.3 实例:使用输入流来读取指定目录下文件的内容,代码见书10-1完成从磁盘上“C: java测试及练习”文件夹下,读取“InputSt

3、reamTest.java”文件本身内容并显示在屏幕上。 在该例中使用的String(byte byte, int offset, int length, String enc)方法,其中byte是被转化为字符串的byte型数组,offset是该数组内读取的起始位置,length是所要创建的String串的字节个数,enc是字符编码的方式。需要注意的是,byte b数组中存储的是输入字符对应的ASCII码。,代码如下,public static void main(String args) int b; byte buffer=new byte2500; try File f=new File

4、(“C: java测试及练“,“ InputStreamTest.java“); /创建File对象file,用来获取磁盘中文件 FileInputStream file=new FileInputStream(f); /创建一个文件输入流,用来指向之前的文件对象f b=file.read(buffer,0,2500); /使用read()方法读取文件中的内容,并保存在字节数组buffer中 try String str=new String(buffer,0,b,“Default“); /创建字符串str,用来转换并存储字节数组中内容 System.out.println(str); /输入

5、字符串str catch(UnsupportedEncodingException e) System.out.println(“the encoding was not found:“+e); catch(IOException e) System.out.println(“File read Error“); ,10.1.4 实例:使用输入输出流来读取并显示文件内容,代码见书10-2从磁盘上“C: java测试及练习文件夹”下,读取“OutputStreamTest.java”文件本身的内容并显示在文本框TextArea中。,部分代码如下,try File file=new File(“E

6、:java测试及练 “,“OutputStreamTest.java“); /创建File对象file,用来获取磁盘中路径为:E:java测试及练习,文件名为/OutputStreamTest.java的文件 FileInputStream readfile=new FileInputStream(file); /创建文件输入流,并将其指向之前已经创建好的文件对象file while(b=readfile.read(butter,0,2500)!=-1) /使用read()方法,读取文件内容,当到达文件尾时循环结束 String str=new String(butter,0,2500); /

7、创建字符串str,用于转换并存储字节数组中内容 System.out.println(str); text.append(str+n); /在文本区中加入读取到的文件内容 readfile.close(); /关闭文件输入流 catch(IOException e) System.out.println(“File read error“); ,10.1.5 实例:使用read方法读取文件内容,代码见书10-3从磁盘上“C: java测试及练习”文件夹下,读取“aaa.txt”文件中的内容,并按数组中的位置,来分别显示每个字符在数组中的信息,包括:位置、对应ASCII码、字符。 FileInp

8、utStream readfile = new FileInputStream(“aaa.txt“); /创建文件输入流,将其指向当前目录下aaa.txt文件 b = readfile.read(buff,0,2500); /使用read()方法读取输入流文件内容,并存储于buff字节数组,10.1.6 实例:两种“程序接收用户数据输入”方法的实现,熟悉C语言的人都知道,C语言可以利用getchar()函数接收用户的数据输入,而在Java代码中同样可以实现。代码10-4介绍了通过I/O流,来实现从DOS界面命令行接收数据输入的方法。同时也包含了另外一种,通过输入对话框的形式输入数据的方法。,主

9、要代码如下,public static void main(String argv) BufferedReader b = new BufferedReader(new InputStreamReader(System.in); /创建缓冲区读入数据流b,并将其与指向系统输入(System.in)的输入数据流连接起来 int a = Integer.parseInt(JOptionPane.showInputDialog(“Enter A Number“); /利用输入对话框输入数据 int d = 0; try System.out.println(“Enter C Number”); c

10、= b.readLine(); /按行读入命令行输入信息 d = Integer.parseInt(c); catch(IOException e1) System.out.println(“A is:“+a+“,C is:“+c+“,d is:“+d); System.exit(0); ,10.2 文件类(File)的使用,File类是主要用于获取磁盘中文件,或者目录信息的一个类。但需要注意的是:File类的对象并不打开文件,也不提供任何的文件处理的功能。但是java.io包中的其他类,经常会使用File类中的对象,来指定所要操作的文件或目录。File类构造器及方法见表,10.2.1 获取指

11、定文件的描述信息,通过代码见书10-5,利用文件类的部分方法,来获取指定文件 “C: java测试及练习aaa.txt”的信息,并显示在屏幕上。,10.2.2 创建新文件,代码见书10-6中,使用File类中的createNewFile()方法,在默认的当前目录“C: java测试及练习”下创建新的文件。,10.2.3 文件改名及文件删除,代码见书10-7中,使用File类中的renameTo()方法,在默认的当前目录“C: java测试及练习”下,修改指定文件“abc.txt”的文件名。,10.2.4 获取指定文件目录下的所有文件,代码10-9中,使用File类中的list()方法,来返回一

12、个字符串数组,用来获取该File对象包含的文件以及子目录的名字,如果File的对象并不是一个目录,则会返回null。,10.3 读取文件,在之前的两节中,已经介绍了一些关于文件读取的例子,在这个基础上,再详细介绍一下关于文件的读取,以及操作。,10.3.1 示例读取文件并显示,代码10-10中,使用FileDialog类的对象,来实现使用文件对话框打开文件,同时把所选择的文件的内容显示在一个文本区内。,10.3.2 读取文件的分类及所涉及到的类,在Java中,输入流包括InputStream类和Reader类。InputStream是用于面向字节的流,例如处理二进制文件时使用。而Reader类

13、则是用于面向字符的流,可以用于处理用ASCII字符集,或Unicode表示的文本,例如在处理纯文本文件、HTML 文档和Java源代码文件时使用。因此对于所有的文本输入,都应该使用字符流来实现,而不能用字节流来处理。在实际的编程中,一般不直接使用这两个类,而是使用从这几个类中派生出的新类。,10.3.3 读取文件Reader类的基本方法,读取文件Reader类的基本方法见表,10.4 写入文件,在这一部分,主要是介绍关于数据的写入。利用输出流来指定数据的去向,从而将数据信息写入到指定的文件当中。,10.4.1 示例将输入的文本保存到文件,代码10-13中,首先利用File方法创建一个新的.tx

14、t文件,之后使用FileWriter类来实现对文件的写入。部分代码如下。 try file = new File(name + “.txt“); /创建文件对象file file.createNewFile(); /创建新的文件 catch (IOException e) else System.out.println(“Can not create a file!“); String content = JOptionPane.showInputDialog(“Please input the contents of this file:“); /利用输入对话框输入文件内容 try writ

15、eFile = new FileWriter(file); /创建输出文件流对象 catch(IOException e) out = new BufferedWriter(writeFile); /创建输出缓冲流对象,并将这个流与输出文件流连接,10.4.2 写入文件的分类及所涉及到的类,在本节中主要介绍输出流。输出流包括欧OutputStream类和Writer类。OutputStream同样是用于面向字节的流。而Writer类则是用于面向字符的流,可以用于处理用ASCII字符集,或Unicode表示的文本。,10.4.3 写入文件Writer类的基本方法,写入文件Writer类的基本方法

16、见表,10.5 随机访问文件,除了之前介绍的对文件操作的流以外,Java还提供了用来专门处理文件的流,并称之为随机访问文件RandomAccessFile流。该流提供了更加完善的、对文件输入输出操作的功能。当用户需要严格地处理文件时,就可以选择使用RandomAccessFile类。但需要注意的是,与之前文件流不同,RandomAccessFile类创建的流既可以表示数据文件的源,也可以表示数据文件的目的。也就是说,RandomAccessFile类创建的流既可作为输入流,也可以同时作为输出流。,10.5.1 RandomAccessFile流的构造及内部方法,RandomAccessFile类构造器及方法见表 需要注意的是:创建RandomAccessFile对象时,应该捕获FileNotFoundException异常。,1

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

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

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