JavaPPT第六章输入输出流.ppt
《JavaPPT第六章输入输出流.ppt》由会员分享,可在线阅读,更多相关《JavaPPT第六章输入输出流.ppt(25页珍藏版)》请在三一办公上搜索。
1、1,第六章输入输出流,2,6.1 输入输出基础,在Java语言中,输入与输出完全基于“流”这个概念。Java输入输出的流式接口为复杂而繁重的I/O编程任务提供了一个简洁的抽象。,一、流的概念 Java程序通过流来完成输入/输出。流通过Java的输入/输出系统与物理设备链接。输入流能够抽象多种不同类型的输入:从磁盘文件、从键盘或从网络套接字。同样,一个输出流可以输出到控制台,磁盘文件或相连的网络。二、字节流和字符流 在Java 2中,定义了两种类型的流:字节类和字符类。1.字节流 字节流(byte stream)为处理字节的输入和输出提供了方便的方法。可以使用字节流读取或书写二进制数据。,3,字
2、节流由两个类层次结构定义。在顶层有两个抽象类:InputStream和OutputStream。这两个抽象类定义了实现其他流类的关键方法。最重要的两种方法是read()和write(),它们分别对数据的字节进行读写,这两种方法在InputStream和OutputStream中被定义为抽象方法,它们都被派生的流类重载。下面是几个常用的具体的字节流类:BufferedInputStream:缓冲输入流 BufferedOutputStream:缓冲输出流 FileInputStream:读取文件的输入流 FileOutputStream:写文件的输出流 InputStream:描述流输入的抽象类
3、 OutputStream:描述流输出的抽象类 PrintStream:包含print()和println()的输出流 RandomAccessFile:支持随机文件输入/输出,4,2.字符流 字符流(character stream)为字符的输入和输出处理提供了方便。字符流的顶层有两个抽象类:Reader和Writer。这两个抽象类定义了实现其他流类的关键方法。最重要的两种方法是read()和write(),它们分别进行字符的读写,都被派生的流类重载。下面是几个常用的具体的字符流类:BufferedReader:缓冲输入字符流 BufferedWriter:缓冲输出字符流 FileReade
4、r:读取文件的输入流 FileWriter:写文件的输出流 InputStreamReader:把字节转换成字符的输入流 LineNumberReader:计算行数的输入流 OutputStreamWriter:把字符转换成字节的输出流 PrintWriter:包含print()和println()的输出流 Reader:描述字符流输入的抽象类 Writer:描述字符流输出的抽象类,5,三、预定义流 所有的Java程序运行时自动导入java.lang包,这个包定义了一个名为System的类,该类封装了运行时环境的多个方面。System还包含有3个预定义的字节流变量in、out和err。他们的定
5、义如下:public static InputStream in;public static PrintStream out;public static PrintStream err;,6,6.2 控制台输入输出,一、控制台输入1.BufferedReader缓冲输入字符流类 在Java 2中,读取控制台输入的首选方法应该是字符流,它使程序容易符合国际标准,并且易于维护。控制台输入由从System.in读取数据来完成。BufferedReader的构造函数用法如下:BufferedReader(Reader inputReader)其中,inputReader是链接被创建的BufferedR
6、eader实例的流。Reader是一个抽象的类,InputStreamReader是Reader的一个具体子类,该子类将字节转换成字符。InputStreamReader的构造函数为:InputStreamReader(InputStream inputStream)可以这样使用:InputStreamReader(System.in),7,综上所述,下面的代码创建了与键盘相连的BufferedReader对象:BufferedReader br=new BufferedReader(new InputStreamReader(System.in)2.BufferedReader中重载方法re
7、ad()和readLine()read()方法int read()throws IOException 该方法每次执行都从输入流中读取一个字符,然后以整型形式返回。当遇到流的尾时,返回-1。readLine()方法String readLine()throws IOException该方法每次执行从输入流中读取一行字符,然后以String形式返回。当遇到流的尾时,返回null。,8,import java.io.*;public class inputFIS public static void main(String args)BufferedReader ss=new BufferedRe
8、ader(new InputStreamReader(System.in);String s,input;int a;float b;char c;try input=ss.readLine();s=input;a=Integer.parseInt(input);b=Float.parseFloat(input);c=(char)ss.read();,必须进行强制类型转换,9,System.out.println(s);System.out.println(a);System.out.println(b);System.out.println(c);catch(IOException e)Sy
9、stem.out.println(there are some wrong in I/O);,注:捕获的异常类型是Exception时,若输入数据不符合parse方法的参数要求,该异常会被捕获到。捕获的异常类型是IOException时,若输入的数据不符合parse方法的参数要求,该异常不会被捕获到,出现运行时错误。,异常类型可以是Exception,10,程序运行时,从键盘输入:1234(若输入非数字串则有运行错误)wrh输出 1234 字符串 1234 整型数据 1234.0 实型数据 w 字符型数据,11,3.每行输入多个数据项 上面的例子采用逐行读取字符的方法,然后把每行数据作为输入赋
10、给一个变量。如果希望每行数据包含多个子数据项,Java提供了专门的类StringTokenizer来分解一个包含分隔符号的大的字符串。用法如下:StringTokenizer st=new StringTokenizer(line,“:”)这里的字符串line的分隔符指定为“:”。也可指定多个分隔符,如果未指定分隔符,则使用缺省分隔符,即“空格”,“TAB”,”回车”。StringTokenizer st=new StringTokenizer(line)StringTokenizer有两个方法,nextToken()返回下一个标记,hasMoreTokens()返回后面是否还有标记。,12,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaPPT 第六 输入输出
链接地址:https://www.31ppt.com/p-6509373.html