黑马程序员——Java IO总结二
2015-07-25 16:22
330 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
打印流
PrintStream
字节打印流,可对多种数据类型进行打印,构造函数可以接收的类型1、File对象,2、字符串路径,3、字节输出流。使用时注意write和print方法的区别
PrintWriter
字符打印流,构造函数可以接收的类型1、File对象,2、字符串路径,3、字节输出流,4、字符输出流
序列流
SequenceInputStream
值负责源,应用可进行多个文件的合并,1、可接收两个InputStream流用于合并,2、可接收生成运行时类型为
获取Enumeration的方法,1、Vector的elements方法,集合可返回此向量的枚举,2、用List的迭代和自定义枚举获取枚举类,3、用collections工具类也可以获得枚举类
文件切割方法1、按大小切,2、按个数切
a、读取流关联文件
b、定义一个缓冲区
c、创建目的,在循环内创建流与目的文件的关联,即每次都可用一个新的流与新的文件写入
切割文件时,记录文件名称和个数存放于配置文件中,以便用于合并
对象流
ObjectInputStream和ObjectOutputStream
被操作的对象要实现Serializable(标记接口),给类加上一个ID,强烈建议自己显示设置ID
静态不能被序列化,静态在方法区中
Transient 非静态也不能被序列化
管道流
PipedInputStream和PipedOutputStream
主要在多线程时使用
随机读取流
RandomAccessFile
随机访问文件,自身具备读写方法
通过SkipByte(int x)、seek(int x) 来达到随机访问
直接继承自Object,但是IO包成员,因为其具备读写功能
用getFilePointer获取指针位置
用seek改变指针位置
其完成读写的原理就是其内部封装了字节输入流和输出流
只能操作文件,且还有模式
可实现任意位置的写入,可以多线程写入,断点续传
数据流
DataInputStream和dataOutputStream
基本数据类型的数据的流对象
字节流
ByteArrayInputStream和ByteArrayOutputStream
ByteArrayInputStream在构造时需接入数据源,且数据源是一个字节数组
ByteArrayOutputStream在构造时不用定义数据目的,因为该对象内已经封装了可变长度的字节数组,这就是数据的目的地
因为这两个流对象都是操作的数组,并没有用系统资源,所以不用close关闭
字符流
CharArrayReader和CharArrayWriter
字符串流
StringReader和StringWriter
打印流
PrintStream
字节打印流,可对多种数据类型进行打印,构造函数可以接收的类型1、File对象,2、字符串路径,3、字节输出流。使用时注意write和print方法的区别
PrintWriter
字符打印流,构造函数可以接收的类型1、File对象,2、字符串路径,3、字节输出流,4、字符输出流
序列流
SequenceInputStream
值负责源,应用可进行多个文件的合并,1、可接收两个InputStream流用于合并,2、可接收生成运行时类型为
InputStream对象的
Enumeration型参数
获取Enumeration的方法,1、Vector的elements方法,集合可返回此向量的枚举,2、用List的迭代和自定义枚举获取枚举类,3、用collections工具类也可以获得枚举类
文件切割方法1、按大小切,2、按个数切
a、读取流关联文件
b、定义一个缓冲区
c、创建目的,在循环内创建流与目的文件的关联,即每次都可用一个新的流与新的文件写入
切割文件时,记录文件名称和个数存放于配置文件中,以便用于合并
对象流
ObjectInputStream和ObjectOutputStream
被操作的对象要实现Serializable(标记接口),给类加上一个ID,强烈建议自己显示设置ID
静态不能被序列化,静态在方法区中
Transient 非静态也不能被序列化
管道流
PipedInputStream和PipedOutputStream
主要在多线程时使用
随机读取流
RandomAccessFile
随机访问文件,自身具备读写方法
通过SkipByte(int x)、seek(int x) 来达到随机访问
直接继承自Object,但是IO包成员,因为其具备读写功能
用getFilePointer获取指针位置
用seek改变指针位置
其完成读写的原理就是其内部封装了字节输入流和输出流
只能操作文件,且还有模式
可实现任意位置的写入,可以多线程写入,断点续传
数据流
DataInputStream和dataOutputStream
基本数据类型的数据的流对象
字节流
ByteArrayInputStream和ByteArrayOutputStream
ByteArrayInputStream在构造时需接入数据源,且数据源是一个字节数组
ByteArrayOutputStream在构造时不用定义数据目的,因为该对象内已经封装了可变长度的字节数组,这就是数据的目的地
因为这两个流对象都是操作的数组,并没有用系统资源,所以不用close关闭
字符流
CharArrayReader和CharArrayWriter
字符串流
StringReader和StringWriter
相关文章推荐
- 求一个整形数组的和最大的连续子串 -------- 程序员面试金典
- 黑马程序员
- 7.24晚毫无准备的面试题
- (剑指Offer)面试题33:把数组排成最小的数
- 全面解析《嵌入式程序员应该知道的16个问题》
- 面试题19_二叉树的镜像——剑指offer系列
- 实习工作面试常问问题
- [黑马程序员](第19天)一些遗漏的知识点
- 黑马程序员——集合框架(Map详解)
- [黑马程序员](第16-22天)IO流(下)
- [黑马程序员](第16-22天)IO流(上)
- [黑马程序员](第16-22天)IO流(中)
- [黑马程序员](第10-15天)集合类(下)
- 35 岁前程序员要规划好的四件事
- 我来自阿里政委,一个神秘的组织
- 转载是一种凝聚(之一) 国内外程序员生态圈对比
- 转载是一种凝聚(之一) 国内外程序员生态圈对比
- 【面试加分项】运行时多态与编译时多态
- 黑马程序员——多线程(二)
- 黑马程序员——集合框架(泛型限定)