Java 输入流,输出流

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/6/19第九章JavaI/0系统︳Java程序设计luqiang@hfut.edu.cn系统本章学习提示本章我们主要学习Java语言的输入输出处理的机制基本流的使用字符流的使用字节流的使用文件的访问LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage3/38Chapter09JavaI/O系统目录JavaI/O流概述1文件处理54字节流基本流2字符流3LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage4/38Chapter09JavaI/O系统常用软件LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage5/38Chapter09JavaI/O系统输入输出类库输入和输出是程序与用户之间沟通的桥梁,程序与用户进行信息交互的重要手段。Java提供了专用于输入输出功能的包java.io,其中包含5个非常重要的类,所有与输入输出有关的类都继承了这5个类。基本流System.outSystem.in字符流ReaderWriter字节流InputStreamOutputStream文件流FileInputStreamFileOutputStream过滤流FilterInputStreamFilterOutputStreamJava的输入输出是以流(stream)的方式进行处理的。流是在计算机的输入、输出操作中流动的数据序列。Java按流的单位分有位流(字节流)和字符流;按流动方向分为输入流和输出流。LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage6/38Chapter09JavaI/O系统输入流示意图输出流示意图LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage7/38Chapter09JavaI/O系统I/O流的分类按所读写的数据类型分两类:字符流类(CharacterStreams)字符流类用于向字符流读写16位二进制字符。字节流类(ByteStreams)字节流类用于向字节流读写8位二进制的字节。一般地,字节流类主要用于读写诸如图象或声音等的二进制数据。LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage8/38Chapter09JavaI/O系统目录JavaI/O流概述1文件处理54字节流基本流2字符流3LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage9/38Chapter09JavaI/O系统基本流为了减少程序开发人员,因频繁应用标准的输入输出设备,需要频繁地建立输入输出流对象的工作量,java系统预先定义好3个流对象,分别表示标准输出设备、标准输入设备和标准错误设备。他们分别是:System.in:用于程序的输入;对应外设为键盘System.out:用于一般输出;对应外设为屏幕System.err:用于显示出错信息;对应外设为屏幕System类的所有属性都是静态static的,调用时以类名System为前缀。上述3个流对象均为静态属性。Page10/38LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationChapter09JavaI/O系统基本I/O之例1.//从键盘输入字符,然后在屏幕上显示输入结果2.importjava.io.*;3.publicclassstandardIO{4.publicstaticvoidmain(String[]args)throwsIOException{5.//IO操作必须捕获IO异常6.charc;7.System.out.println(输入任一字符);8.c=(char)System.in.read();9.System.out.println(输入的字符是:+c);10.}11.}Page11/38LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationChapter09JavaI/O系统基本IO之例1.//基本IOstandardIO2.java,从命令行读入字符串,并处理和显示2.importjava.io.*;3.publicclassstandardIO{4.publicstaticvoidmain(String[]args)throwsIOException{5.//IO操作必须捕获IO异常6.//先使用System.in构造InputStreamReader,再构造BufferedReader。7.InputStreamReaderiin=newInputStreamReader(System.in);8.BufferedReaderstdin=newBufferedReader(iin);9.//读取并输出字符串。10.System.out.print(Enterastring:);11.System.out.println(stdin.readLine());12.//读取字符串并转换成double类型数据输出13.System.out.print(Enteradouble:);14.//将字符串解析为带符号的double类型数据。15.doublenumber2=Double.parseDouble(stdin.readLine());16.System.out.println(number2);17.}18.}LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage12/38Chapter09JavaI/O系统目录JavaI/O流概述1文件处理54字节流基本流2字符流3LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage13/38Chapter09JavaI/O系统Unicode字符流I/O类层次关系图BufferedReaderReaderCharArrayReaderFilterReaderInputStreamReaderPipedReaderStringReaderPushbackReaderLineNumberReaderFileReaderCharArrayWriterWriterFilterWriterOutputStreamWriterBufferedWriterPipedWriterObjectPrintWriterStringWriterFileWriterLuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage14/38Chapter09JavaI/O系统Reader类用来以字符方式从流中读入数据。Reader类中包含了一套所有字符输入流都需要的方法,可以完成最基本的从字符输入流读取数据的功能。Reader是一个抽象类,所以实际应用中创建的对象是Reader某个子类的对象,通过该子类对象与外接数据源连接。子类必须实现的方法只有intread(char[]b,intoffset,intlength)voidclose()当输入流使用完毕后,可以调用该方法将其关闭,断开java程序与外设数据源的联系,释放此连接所占用的系统资源LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage15/38Chapter09JavaI/O系统Reader常用子类BufferedReader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取可以指定缓冲区的大小InputStreamReader字节流通向字符流的桥梁:它使用指定的charset读取字节并将其解码为字符。每次调用InputStreamReader的read()方法都会导致从底层输入流读取一个或多个字节。FileReader用来读取字符文件的类用于读取字符流详细内容见软件包java.io的Reader类LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage16/38Chapter09JavaI/O系统Writer类用来以字符方式向输出流中写入数据。Writer类中包含了一套所有字符输出流都需要的方法,可以完成最基本的向字符输出流写入数据的功能。Writer是一个抽象类,所以实际应用中创建的对象是Writer某个子类的对象,通过该子类对象与外接数据源连接。子类必须实现的方法仅有voidwrite(char[]b,intoffset,intlength)voidclose()voidflush()//强制清空缓冲区当输入流使用完毕后,关闭输出流,断开java程序与外设数据源的连接,释放所占有的系统资源LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationPage17/38Chapter09JavaI/O系统Writer常用子类BufferedWriter将文本写入字符输出流,缓冲各个字符可以指定缓冲区的大小OutputStreamWriter字符流通向字节流的桥梁:可使用指定的charset将要写入流中的字符编码成字节每次调用write()方法都会导致在给定字符(或字符集)上调用编码转换器FileWriter用来写入字符文件的类文件是否可用或是否可以被创建取决于底层平台PrintWriter向文本输出流打印对象的格式化表示形式详细内容见软件包java.io的Writer类Page18/38LuQiang,2009HefeiUniversityofTechnology,SchoolofComputerandInformationChapter09JavaI/O系统字符流之例1.//输入字符串、浮点数、整数在屏幕上显示输入结果2.importjava.io.*;3.publicclassstandardIO3{4.publicstaticvoidmain(String[]args)throwsIOException{5.InputStreamReaderiin=newInputStreamReader(System.in);6.BufferedReaderbin=newBufferedReader(iin);7.Strings;8.floatf;9.inti=0;10.System.out.println(输入任一字符串);11.s=bin.readLine();12.System.out.println(输入浮点数);13.f=Float.pa

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功