Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元8输入输出流

上传人:E**** 文档编号:89189431 上传时间:2019-05-21 格式:PPT 页数:68 大小:639.50KB
返回 下载 相关 举报
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元8输入输出流_第1页
第1页 / 共68页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元8输入输出流_第2页
第2页 / 共68页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元8输入输出流_第3页
第3页 / 共68页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元8输入输出流_第4页
第4页 / 共68页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元8输入输出流_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元8输入输出流》由会员分享,可在线阅读,更多相关《Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元8输入输出流(68页珍藏版)》请在金锄头文库上搜索。

1、单元8 输入/输出流,任务导入,设计的记事本程序以图形用户界面的形式出现, 当用户单击“打开”按钮时,能够打开用户选中的 文本文档,并显示文档内容,用户可以对打开 的文档内容进行编辑,当用户单击“保存”按钮时, 能将打开的文本文档进行保存。,教学目标,知识目标 了解流、输入/输出流的概念。 掌握常见的输入/输出流类及其主要方法。 理解Java语言文件的概念。 掌握Java语言文件及目录的基本操作。 技能目标 能够合理地创建流来进行输入/输出操作。 能够编程实现对文件的顺序、随机访问。,相关知识,输入/输出流 Java对文件的管理 Java对文件的访问 过滤流,输入/输出概述,程序需要与外界进行

2、信息交换,即程序需要具备输入/输出的功能。 所谓输入/输出是以程序为主体而言的,当从程序向外部输出数据时称为“输出(write)”,此时程序是数据的提供者,即数据源(source);当程序从外部读取数据时称为“输入(read)”,此时程序是数据的使用者,即数据的目的地(dest)。,输入/输出流,Java语言以流(Stream)的方式来处理输入/输出数据。 不论输入还是输出,数据就像在数据通信信道中从“数据源”流向“数据的目的地”,如图所示。,输入/输出流类,Java语言开发环境的java.io包提供了大量的类对流进行操作,从而实现了输入/输出功能。 根据输入/输出的数据类型,可以将流从结构上

3、分为字节流(以字节为处理单位)和字符流(以字符为处理单位)。 字节流的输入流和输出流的基础类是InputStream和OutputStream。字符流的输入流和输出流的基础类是Reader和Writer。,InputStream类,InputStream类,InputStream类可以完成最基本的从输入流读取数据的功能,是所有字节输入流的直接或间接父类,它的多个子类及层次关系如图所示。,InputStream类提供的方法,OutputStream类,OutputStream类可以完成最基本的向输出流写入数据的功能,是所有字节输出流的直接或间接父类,它的多个子类及层次关系如图所示。,Output

4、Stream类提供的方法,字符流,字符流以Unicode字符为单位从流中读取或往流中写入数据,一次读取或写入16位。,Reader类,Reader类可以完成最基本的从输入流读取数据的功能,是所有字符输入流的直接或间接父类,它的多个子类及层次关系如图所示。,Reader类提供的方法,Writer类,Writer类可以完成最基本的向输出流写入数据的功能,是所有字符输出流的直接或间接父类,它的多个子类及层次关系如图所示。,Writer类提供的方法,输入输出编程,不管是字节流还是字符流,任意一个Java程序的输入/输出过程都可以分为以下几步。 1)根据输入/输出数据的类型,创建相应的输入/输出流对象。

5、 2)调用流的方法read()/write(),从流读取或向流写入数据。 3)调用流对象的close()方法关闭流,释放资源。,标准输入输出,标准输入设备通常是键盘,标准输出设备及标准错误输出设备通常都是屏幕。 Java语言的系统类System提供了访问标准输入/输出设备的功能。System类是继承自Object类的final类,它有三个类变量in、out和err,分别表示标准输入、标准输出和标准错误输出流。,标准输入流,Java语言的标准输入流System.in是InputStream类的对象,对应键盘输入,而且已经打开,通过调用InputStream类的方法read()可以从键盘读入字符。

6、,标准输出流,Java语言的标准输出流System.out是打印输出流PrintStream类的对象,PrintStream类又是过滤输出流FilterOutputStream类的子类。该流对应显示器输出,而且已经打开,通过调用PrintStream类的方法print()和println()等向显示器输出数据。 方法print()和println()可以将Java语言的任意基本类型作为参数,两者的唯一区别是完成输出后是否换行。,标准错误输出流,Java语言的标准错误输出流System.err也是打印输出流PrintStream类的对象。该流对应显示器输出,而且已经打开,通过调用PrintStr

7、eam类的方法输出。,标准输入输出实战,【案例8-1】从键盘读入数据并输出,以“*”号结束,同时统计读入数据的个数。,程序清单,import java.io.IOException; public class StandardIO public static void main(String args) throws IOException int count=0,b; System.out.println(“请输入数据“); while(char)(b=System.in.read()!=*) System.out.print(char)b); count+; System.out.prin

8、tln(); System.out.println(“共输入了“+count+“个字符“); ,文件的访问,在应用程序设计中,除了基本的键盘输入和屏幕输出外,最常见的输入输出就是对磁盘文件的读写。 Java语言不仅支持文件管理,还支持目录管理(实际上,Java语言把目录看作一种特殊的文件)。,目录和文件管理,在java.io包中的File类代表一个磁盘上的文件或目录,它提供了与平台无关的方法来对文件或目录进行管理,如对文件或目录的创建、删除、重命名、获取相关信息等。 要管理本地磁盘的文件或目录,就要创建File类对象,通过该对象对文件或目录进行管理。,File类构造函数,创建File类对象,F

9、ile parent=new File(“e:workmyfile“); File file1=new File(parent,“1.txt“); File file2=new File(“e:workmyfile2.txt“); File file3=new File(“e:workmyfile“,“3.txt“);,File类常见方法,File类常见方法,File类的使用,import java.io.File; public class FileDemo public static void main(String args) String s1=“myfile1.txt“; Strin

10、g s2=“myfile“; File file1=new File(s1); File file2=new File(s2); if(!file1.exists() S ystem.out.println(“文件“+file1.getName()+“不存在“); if(file1.isFile() System.out.println(“文件对象“+file1.getName()+“是文件“); System.out.println(“文件字节数:“+file1.length(); System.out.println(“文件是否能读:“+file1.canRead(); System.ou

11、t.println(“设置文件为只读:“+file1.setReadOnly(); System.out.println(“文件是否可写:“+file1.canWrite(); if(file2.isDirectory() System.out.println(“文件对象“+file2.getName()+“是目录“); File file3=new File(“myfilefile“); if(!file3.exists() file3.mkdir(); System.out.println(“目录对象“+file3.getPath()+“创建结束“); ,程序的运行结果如下: 文件对象1.

12、txt是文件 文件字节数:3 文件是否能读:true 设置文件为只读:true 文件是否可写:false 文件对象myfile是目录,文件的顺序访问,要完成对文件内容的读取和写入,需要使用java.io包中的文件输入/输出字节流FileInputStream类和FileOutputStream类,或者文件输入/输出字符流FileReader类和FileWriter类。,FileInputStream类,FileInputStream类的构造方法,FileInputStream类,要构造一个FileInputStream对象,所连接的文件必须存在而且是可读的。如果FileInputStream对

13、象创建成功,就打开了该对象对应的文件,可以从文件读取数据了。如果指定文件不存在,或者它是一个目录,而不是一个常规文件,抑或因为其他某些原因无法打开进行读取,则抛出FileNotFoundException异常,这是一个非运行时异常,必须捕获或抛出,否则将产生编译错误。,FileInputStream类的使用,【案例8-3】使用FileInputStream读取文件内容,并输出到显示器。,程序清单,import java.io.FileInputStream; import java.io.IOException; import java.io.File; public class FileIn

14、putStreamDemo public static void main(String args) File file=new File(“myfile1.txt“); int a; if(file.exists() try FileInputStream fis=new FileInputStream(file); while(a=fis.read()!=-1) System.out.print(char)a); System.out.println(); fis.close(); catch (IOException ex) System.out.println(ex); else Sy

15、stem.out.println(“文件对象“+file.getName()+“不存在“); ,FileOutputStream类,FileOutputStream类,构造一个FileOutputStream对象时,如果输出文件不存在,则自动创建一个新文件;如果输出文件已经存在且可写,则该文件内容会被新的输出内容覆盖。如果要保留文件原有内容,可在两个构造方法中添加第二个参数boolean append,并将参数的值设为true,此时将字节写入文件末尾处,而不是写入文件开始处。,FileOutputStream类的使用,【案例8-5】显示当前目录结构并完成文件内容的复制。,InputStream

16、Reader类和OutputStreamWriter类,InputStreamReader类和OutputStreamWriter类是Reader类和Writer类的子类,是常用的输入/输出字符流类,用来在字节流和字符流之间搭一座“桥”。,常用构造方法,InputStreamReader是字节流通向字符流的桥梁,它使用指定的字符集读取字节并将其解码为字符。 OutputStreamWriter是字符流通向字节流的桥梁,它使用指定的字符集将要向其写入的字符编码为字节。,InputStreamReader类和OutputStreamWriter类,FileReader类和FileWriter类,FileReader类和FileWriter类称

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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