




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章输入 输出流 Java通过数据流来实现程序相关的数据输入和输出 本章主要介绍数据流的概念及应用和java io包中与数据流相关的类 主要涉及到字节流 字符流和与文件相关的处理 最后再介绍下串行化的概念和串行化的方法 本章内容 9 1I O流概述9 2字节流9 3字符流9 4文件的处理9 5串行化 9 1I O流概述 9 1I O流概述 java io包中的类和接口主要定义了两种类型的数据流 字节流类和字符流类 字节流处理的数据是以字节为单位处理的 也是最基本的处理方式 字符流处理的数据是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符 采用了统一的编码标准 也更适合国际化 字节流可用于任何类型的对象 包括二进制对象 而字符流只能处理字符或者字符串 但其在某些场合提供更有效的方式比如文本处理等 9 1I O流概述 1 字节流类 9 1I O流概述 1 字节流类 9 1I O流概述 1 字符流类 9 1I O流概述 1 字符流类 9 2字节流 1 继承自InputStream 用来顺序读取本地文件 它有3个构造方法如下 MSITStore E 5Cjava E5 86 99 E4 B9 A6 5CJDK1 6 20API E5 B8 AE E5 8A A9 E6 96 87 E6 A1 A3 CHM java io FileInputStream htmlFilefile 此构造方法通过打开一个到实际文件的连接来创建一个 该文件通过文件系统中的File对象file指定 MSITStore E 5Cjava E5 86 99 E4 B9 A6 5CJDK1 6 20API E5 B8 AE E5 8A A9 E6 96 87 E6 A1 A3 CHM java io FileInputStream htmlfdObj 此构造方法以对象作为参数 也是java io包中的类 用来关联一个已打开的文件 或已打开的网络链接 或其他I O连接 MSITStore E 5Cjava E5 86 99 E4 B9 A6 5CJDK1 6 20API E5 B8 AE E5 8A A9 E6 96 87 E6 A1 A3 CHM java io FileInputStream htmlStringname 此构造方法通过打开一个到实际文件的连接来创建一个 该文件通过文件系统中的路径名name指定 9 2字节流 继承自OutputStream 用来将数据写入到本地文件 它有5个构造方法如下 MSITStore E 5Cjava E5 86 99 E4 B9 A6 5CJDK1 6 20API E5 B8 AE E5 8A A9 E6 96 87 E6 A1 A3 CHM java io FileOutputStream htmlFilefile 此构造方法创建一个向指定File对象表示的文件中写入数据的文件输出流 MSITStore E 5Cjava E5 86 99 E4 B9 A6 5CJDK1 6 20API E5 B8 AE E5 8A A9 E6 96 87 E6 A1 A3 CHM java io FileOutputStream htmlFilefile booleanappend 此构造方法创建一个向指定File对象表示的文件中写入数据的文件输出流 MSITStore E 5Cjava E5 86 99 E4 B9 A6 5CJDK1 6 20API E5 B8 AE E5 8A A9 E6 96 87 E6 A1 A3 CHM java io FileOutputStream htmlfdObj 此构造方法创建一个向指定文件描述符处写入数据的输出文件流 该文件描述符表示一个到文件系统中的某个实际文件的现有连接 MSITStore E 5Cjava E5 86 99 E4 B9 A6 5CJDK1 6 20API E5 B8 AE E5 8A A9 E6 96 87 E6 A1 A3 CHM java io FileOutputStream htmlStringname 此构造方法创建一个向具有指定名称的文件中写入数据的输出文件流 MSITStore E 5Cjava E5 86 99 E4 B9 A6 5CJDK1 6 20API E5 B8 AE E5 8A A9 E6 96 87 E6 A1 A3 CHM java io FileOutputStream htmlStringname booleanappend 此构造方法创建一个向具有指定name的文件中写入数据的输出文件流 9 2字节流 例9 1 在C盘创建一个MyInput txt的记事本文件 在其中写入一串符 12345abcde 在C盘另创建一个MyOutput txt的记事本文件 用和类编写程序把MyInput txt的数据读出来 并写入MyOutput txt 9 2字节流 RandomAccessFile提供了 随机访问 文件的方式 即可以在文件中的任一位置开始读写 而且可以完成对同一个文件的读和写操作 RandomAccessFile类有两个构造方法如下 RandomAccessfile Stringmode 该构造方法创建从中读取和向其中写入 可选 的随机访问文件流 该文件由File参数指定 mode指定访问的方式 r表示读 w表示写 RandomAccessname Stringmode 该构造方法创建从中读取和向其中写入 可选 的随机访问文件流 该文件具有指定名称 9 2字节流 BufferedInputStream是增加了缓冲的输入流 用来连接别的输入流 通过缓冲区来提高性能 当内部缓冲区的数据读取完毕以后 其将自动地从数据源输入流中再次读取接下来的一批数据覆盖缓冲区 而缓冲区指针标记会重新指向缓冲区首部 默认的缓冲区大小为512KB 也可以设置缓冲区的大小 BufferedInputStream有两个构造方法如下 BufferedInputStream InputStreamin 该构造方法创建一个BufferedInputStream并保存其参数 即输入流in 以便将来使用 BufferedInputStream InputStreamin intsize 该构造方法创建具有指定缓冲区大小的BufferedInputStream并保存其参数 即输入流in 以便将来使用 9 2字节流 BufferedOutputStream是增加了缓冲区的输出流 用来连接别的输出流 其同样拥有一个内部缓冲区 当内部缓冲区被写满后 或本输出流刷新 内部缓冲区的数据就会写入所连接的输出流 BufferedOutputStream有两种构造方法如下 BufferedOutputStream OutputStreamout 该构造方法创建一个新的缓冲输出流 以将数据写入指定的底层输出流 BufferedOutputStream OutputStreamout intsize 该构造方法创建一个新的缓冲输出流 以将具有指定缓冲区大小的数据写入指定的底层输出流 其中size是用来设定缓冲区大小 如果不指定缓冲区大小则取默认值512KB 9 2字节流 ByteArrayInputStream是把字节数组作为源的输入流 即把字节数组作为内部缓冲区 该类有两个构造方法如下 ByteArrayInputStream byte buf 该构造方法创建一个ByteArrayInputStream 使用buf作为其缓冲区数组 ByteArrayInputStream byte buf intoffset intlength 该构造方法创建ByteArrayInputStream 使用buf作为其缓冲区数组 offset是整型偏移量 length是一个整型长度 9 2字节流 与ByteArrayInputStream相对应 ByteArrayOutputStream对象中同样有一个字节数组作为内部缓冲区 也是该输出流的数据输出端 其有两个构造方法如下 ByteArrayOutputStream 该函数创建一个新的byte数组输出流 默认的内部缓冲区的长度为32个字节 ByteArrayOutputStream intsize 该函数创建一个新的byte数组输出流 它具有指定大小的缓冲区容量 以字节为单位 9 2字节流 SequenceInputStream用来把多个输入流组成的集合作为数据源 其能够依次对多个输入流读取 直到最后一个输入流读完结束 其构造方法有两个如下 SequenceInputStream EnumerationstreamEnum 该构造方法通过记住参数来初始化新创建的SequenceInputStream 该参数必须是生成运行时类型为InputStream对象的Enumeration型参数 SequenceInputStream InputStreams1 InputStreams2 该构造方法通过记住这两个参数来初始化新创建的SequenceInputStream 将按顺序读取这两个参数 先读取s1 然后读取s2 以提供从此SequenceInputStream读取的字节 9 2字节流 标准输入输出流主要完成程序与输入输出外设之间的交互 Java通过系统类System定义的两个static类型的变量来实现该功能 主要有3种方式如下 staticInputStreamin键盘的标准输入staticPrintStreamout屏幕的标准输出staticPrintStreamerror通过屏幕输出标准错误 9 3字符流 InputStreamReader类用于将字节输入流转换为字符输入流 本身是字符输入流 其可以将字节形式的流转化为特定的平台上的字符表示 通常作为其他字符输入流的数据源 该类有4个构造方法如下 InputStreamReader InputStreamin 该构造方法创建一个使用默认字符集的InputStreamReader InputStreamReader InputStreamin Charsetcs 该构造方法创建使用给定字符集的InputStreamReader InputStreamReader InputStreamin CharsetDecoderdec 该构造方法创建使用给定字符集解码器的InputStreamReader InputStreamReader InputStreamin StringcharsetName 该构造方法创建使用指定字符集的InputStreamReader 9 3字符流 OutputStreamReader类用于将字节输出流转换为字符输出流 本身是字符输出流 其可以将字节形式的流转化为特定的平台上的字符表示 其接收端是字符输出流 OutputStreamReader类有4个构造方法如下 OutputStreamWriter OutputStreamout 该构造方法创建使用默认字符编码的OutputStreamWriter OutputStreamWriter OutputStreamout Charsetcs 该构造方法创建使用给定字符集的OutputStreamWriter OutputStreamWriter OutputStreamout CharsetEncoderenc 该构造方法创建使用给定字符集编码器OutputStreamWriter OutputStreamWriter OutputStreamout StringcharsetName 该构造方法创建使用指定字符集的OutputStreamWriter 9 3字符流 StringReaderStringReader对象与一个字符串关联 以字符串作为数据源输入流 其构造方法如下 StringReader Strings 该构造方法创建一个新字符串输入流 s作为输入数据源 StringWriter有个内部字符缓冲区作为该字符串输出流的数据接收端 其有2个构造方法如下 StringWriter 该构造方法使用默认初始字符串缓冲区大小创建一个新字符串 StringWriter intinitialSize 该构造方法使用指定初始字符串缓冲区大小创建一个新字符串 9 4文件的处理 Java的File类能提供对文件及目录的操作 在操作时需要更改文件或操作目录的权限 否则会抛出SecurityException和IOException异常 File类有4个构造方法如下 File Fileparent Stringchild 该构造方法根据parent抽象路径名和child路径名字符串创建一个新File实例 File Stringpathname 该构造方法通过将给定路径名字符串转换为抽象路径名来创建一个新File实例 File Stringparent Stringchild 该构造方法根据parent路径名字符串和child路径名字符串创建一个新File实例 File URIuri 该构造方法通过将给定的file URI转换为一个抽象路径名来创建一个新的File实例 9 4文件的处理 Java通过list方法获取目录下的文件列表 此时File对象关联的是目录而不是具体的某一个文件 list方法有如下2种 String list 该list方法返回一个字符串数组 这些字符串指定此抽象路径名表示的目录中的文件和目录 String list
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阜阳界首市教师招聘考试真题2024
- 扁鹊考试题及答案
- 考试题及答案数学
- 切线考试题及答案
- 系统解剖学模拟练习题(含参考答案)
- 眼科基础知识模考试题与参考答案
- 高级养老护理员理论测试试题含答案
- 中学数学教学设计与案例分析知到智慧树答案
- 2025版三方公司环保设备更新借款合同
- 2025独家销售合同:智能家居系统区域独家代理协议
- 景观生态学课件
- 丁苯橡胶乳液聚合生产工艺
- LY/T 2738-2016古树名木普查技术规范
- GB/T 30790.8-2014色漆和清漆防护涂料体系对钢结构的防腐蚀保护第8部分:新建和维护技术规格书的制定
- 幼儿急症救助
- 期末复习放射物理与防护大专习题集
- 主通风机司机培训教材课件
- 酒店运营管理课件
- 2022年红河产业投资集团有限公司招聘笔试题库及答案解析
- 肺心病(课)课件
- 中国烟草PPT模板
评论
0/150
提交评论