资源预览内容
第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
第9页 / 共39页
第10页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2020 6 5 第九章JavaI 0系统 Java程序设计 luqiang 路强 Chapter09JavaI O系统 本章学习提示 本章我们主要学习Java语言的输入输出处理的机制基本流的使用字符流的使用字节流的使用文件的访问 Chapter09JavaI O系统 目录 Chapter09JavaI O系统 常用软件 Chapter09JavaI O系统 输入输出类库 输入和输出是程序与用户之间沟通的桥梁 程序与用户进行信息交互的重要手段 Java提供了专用于输入输出功能的包java io 其中包含5个非常重要的类 所有与输入输出有关的类都继承了这5个类 基本流System outSystem in字符流ReaderWriter字节流InputStreamOutputStream文件流FileInputStreamFileOutputStream过滤流FilterInputStreamFilterOutputStreamJava的输入输出是以流 stream 的方式进行处理的 流是在计算机的输入 输出操作中流动的数据序列 Java按流的单位分有位流 字节流 和字符流 按流动方向分为输入流和输出流 Chapter09JavaI O系统 输入流示意图 输出流示意图 Chapter09JavaI O系统 I O流的分类 按所读写的数据类型分两类 字符流类 CharacterStreams 字符流类用于向字符流读写16位二进制字符 字节流类 ByteStreams 字节流类用于向字节流读写8位二进制的字节 一般地 字节流类主要用于读写诸如图象或声音等的二进制数据 Chapter09JavaI O系统 目录 Chapter09JavaI O系统 基本流 为了减少程序开发人员 因频繁应用标准的输入输出设备 需要频繁地建立输入输出流对象的工作量 java系统预先定义好3个流对象 分别表示标准输出设备 标准输入设备和标准错误设备 他们分别是 System in 用于程序的输入 对应外设为键盘System out 用于一般输出 对应外设为屏幕System err 用于显示出错信息 对应外设为屏幕System类的所有属性都是静态static的 调用时以类名System为前缀 上述3个流对象均为静态属性 Chapter09JavaI O系统 基本I O之例 从键盘输入字符 然后在屏幕上显示输入结果importjava io publicclassstandardIO publicstaticvoidmain String args throwsIOException IO操作必须捕获IO异常charc System out println 输入任一字符 c char System in read System out println 输入的字符是 c Chapter09JavaI O系统 基本IO之例 基本IOstandardIO2 java 从命令行读入字符串 并处理和显示importjava io publicclassstandardIO publicstaticvoidmain String args throwsIOException IO操作必须捕获IO异常 先使用System in构造InputStreamReader 再构造BufferedReader InputStreamReaderiin newInputStreamReader System in BufferedReaderstdin newBufferedReader iin 读取并输出字符串 System out print Enterastring System out println stdin readLine 读取字符串并转换成double类型数据输出System out print Enteradouble 将字符串解析为带符号的double类型数据 doublenumber2 Double parseDouble stdin readLine System out println number2 Chapter09JavaI O系统 目录 Chapter09JavaI O系统 Unicode字符流I O类层次关系图 Chapter09JavaI O系统 Reader类 用来以字符方式从流中读入数据 Reader类中包含了一套所有字符输入流都需要的方法 可以完成最基本的从字符输入流读取数据的功能 Reader是一个抽象类 所以实际应用中创建的对象是Reader某个子类的对象 通过该子类对象与外接数据源连接 子类必须实现的方法只有intread char b intoffset intlength voidclose 当输入流使用完毕后 可以调用该方法将其关闭 断开java程序与外设数据源的联系 释放此连接所占用的系统资源 Chapter09JavaI O系统 Reader常用子类 BufferedReader从字符输入流中读取文本 缓冲各个字符 从而实现字符 数组和行的高效读取可以指定缓冲区的大小InputStreamReader字节流通向字符流的桥梁 它使用指定的charset读取字节并将其解码为字符 每次调用InputStreamReader的read 方法都会导致从底层输入流读取一个或多个字节 FileReader用来读取字符文件的类用于读取字符流 详细内容见软件包java io的Reader类 Chapter09JavaI O系统 Writer类 用来以字符方式向输出流中写入数据 Writer类中包含了一套所有字符输出流都需要的方法 可以完成最基本的向字符输出流写入数据的功能 Writer是一个抽象类 所以实际应用中创建的对象是Writer某个子类的对象 通过该子类对象与外接数据源连接 子类必须实现的方法仅有voidwrite char b intoffset intlength voidclose voidflush 强制清空缓冲区当输入流使用完毕后 关闭输出流 断开java程序与外设数据源的连接 释放所占有的系统资源 Chapter09JavaI O系统 Writer常用子类 BufferedWriter将文本写入字符输出流 缓冲各个字符可以指定缓冲区的大小OutputStreamWriter字符流通向字节流的桥梁 可使用指定的charset将要写入流中的字符编码成字节每次调用write 方法都会导致在给定字符 或字符集 上调用编码转换器FileWriter用来写入字符文件的类文件是否可用或是否可以被创建取决于底层平台PrintWriter向文本输出流打印对象的格式化表示形式 详细内容见软件包java io的Writer类 Chapter09JavaI O系统 字符流之例 输入字符串 浮点数 整数在屏幕上显示输入结果importjava io publicclassstandardIO3 publicstaticvoidmain String args throwsIOException InputStreamReaderiin newInputStreamReader System in BufferedReaderbin newBufferedReader iin Strings floatf inti 0 System out println 输入任一字符串 s bin readLine System out println 输入浮点数 f Float parseFloat bin readLine System out println 输入整数 i Integer parseInt bin readLine System out println 输入的字符串 s System out println 输入的浮点数 f System out println 输入的整数 i Chapter09JavaI O系统 目录 Chapter09JavaI O系统 字节流 输入流类InputStream和输出流OutputStream是两个最基本的输入输出抽象类 用于处理字节流 InputStream类类中包含了一套所有输入流都需要的方法 可以完成最基本的从输入流读取数据的功能 当java程序需要从外设中读入数据时 先创建一个适当类型的输入流类对象来完成与外设的连接 然后再调用执行该新建对象的特定方法 实现对相应外设的操作 每次执行时都从输入流的当前位置处读入一个字节的二进制数据 次数作为低字节 高字节配全零 合成为一个16位整型量返回 若输入流当前位置无数据返回 1 Chapter09JavaI O系统 字节流I O类层次关系图 Chapter09JavaI O系统 OutputStream类 类中包含所有输出流都要使用的方法 当java程序需要向某外设输出数据时 先要创建一个输出流类对象 通过该对象实现与外设的连接 再利用OutputStream类提供的方法将数据写入该外设中 OutputStream类是一个抽象类 不能直接创建OutputStream类对象 而应该创建它的某个子类的对象 子类继承的方法有 Write 方法 flush 方法和close 方法publicvoidwrite intc 将参数c对应的字符写入输出流publicvoidwrite chararray 将字符数组array中全部字符顺序写入到输出流使用完毕后 应用close 方法关闭流 Chapter09JavaI O系统 OutputStream类的常用子类 ByteArrayOutputStream此类实现了一个输出流 数据被写入一个byte数组FileOutputStream用于将诸如图像数据之类的原始字节的数据流写入FileObjectOutputStream实现对象的持久存储 将Java对象的基本数据类型和图形写入OutputStreamPipedOutputStream将管道输出流连接到管道输入流来创建通信管道 详细内容见软件包java io的OutputStream类 Chapter09JavaI O系统 InputStream类的常用子类 类中包含了一套所有输入流都需要的方法 可以完成最基本的从输入流读取数据的功能 当java程序需要从外设中读入数据时 先创建一个适当类型的输入流类对象来完成与外设的连接 然后再调用执行该新建对象的特定方法 实现对相应外设的操作 InputStream子类对象继承InputStream类的如下方法read 方法 定位指针的方法 close 方法 publicintread 每次执行时都从输入流的当前位置处读入一个字节的二进制数据 读数作为低字节 高字节配全零 合成为一个16位整型量返回 若输入流当前位置无数据返回 1 使用完毕后 应用close 方法关闭流 Chapter09JavaI O系统 InputStream类的常用子类 ByteArrayInputStream此类实现了一个输出流 从一个byte数组中读出数据FileInputStream用于从文件File中将诸如图像数据之类的原始字节的数据流读出ObjectInputStream实现对象的持久存储 从OutputStream读入Java对象的基本数据类型和图形 详细内容见软件包java io的InputStream类 Chapter09JavaI O系统 目录 Chapter09JavaI O系统 文件处理 在程序中要对磁盘文件或目录进行操作 首先要对文件或目录建立连接 为此java提供了file类 File类位于java io包中 但不是流类 它不负责输入或输出 而专门用来管理磁盘文件和目录 类的构造方法FileInputStream StringfileName 参数fileName表示带路径的磁盘文件名FileInputStream Filefile 参数file表示为磁盘文件所建立的File对象名在程序执行过程中会出现文件找不到或读写错误
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号