IO总结
2015-12-17 21:33
357 查看
总结:
字节
字符
读
写
转换流:
内存流:长度可变的字节数组
baos.write();//将数据写入内存 3中
打印流:
数据流:专门用于写和读基本数据类型的
Object流:
序列化:
创建流步骤:
IO
字节 字符
流名称 输入流 输出流 输入流 输出流 功能
4大基类 InputStream OutputStream Reader Writer 抽象类
文件流* FileInputStream FileOutputStream FileReader FileWriter 节点流
System类* System.in System.out
缓存流* BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter 处理流
转换流* InputStreamReader OutputStreamWriter 处理流
打印流 PrintStream PrintWriter
内存流* ByteArrayInputStream ByteArrayOutputStream 节点流
数据流 DataInputStream DataOutputStream 处理流
对象流 ObjectInputStream ObjectOutputStream 处理流 对象序列化和反序列化
随机访问文件 RandomAccessFile类(Object类的子类)
读
写
数据流:
对象流 :对象是可序列化的 implements java.io.Serializable;
内存流:长度可变的字节数组
字节
InputStream OutputStream FileInputStream FileOutputStream BufferedInputStream BufferedOutputStream ByteArrayInputStrem ByteArrayOutputStream DataInputStream DataOutputStream PrintStream
字符
Reader Writer FileReader FileWriter BufferedReader BufferedWriter InputStreamReader OutputStreamWriter PrintWriter
读
int read() int read(byte[] b) int read(byte[] b,int off,int len) int read() int read(char[] ch) int read(char[] ch,int off,int len) BufferedReader--->String readLine()
写
void write(int b) void write(byte[] b) void write(byte[] b ,int off,int len) void write(int c) void write(char[] ch) void write(char[] ch,int off,int len) void write(String str) void write(String str,int off,int len) BufferedWriter:---> void newLine() void flush() close()
转换流:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = br.readLine();
内存流:长度可变的字节数组
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write();//将数据写入内存 3中
读: 1) byte[] data = baos.toByteArray() 2)文本 String str = baos.toString(); 3)使用内存输入流 ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); byte[] data = new byte[baos.toByteArray().length]; bais.read(data); 4) baos.writeTo(OutputStream) baos.writeTo(new FileOutputStream("a.t 4000 xt"));
打印流:
PrintStream PrintWriter 除了继承的write()方法 构造方法第二个参数boolean autoFlush 自动刷新。 新增 print println()
数据流:专门用于写和读基本数据类型的
readInt() readBoolean() readUTF() ... writeInt() writeBoolean() writeUTF() ...
Object流:
对象输入流 ObjectInputStream 对象输出流 ObjectOutputStream
序列化:
对象---->文件中的数据 反序列化: 文件中的数据---->对象 注意:使用对象流进行操作的时候,必须保证对象是可序列化
创建流步骤:
1 创建自定义类,实现接口,可序列化 java.io.Serializable 接口 .该接口中没有任何方法需要实现,标记 2 创建对象,使用ObjectOutputStream将对象写入本地(序列化) 3 利用ObjectInputStream将对象从本地读取出来(反序列化) 注意: 属于对象的属性是可以被序列化的 本能被序列化 1 静态属性 不能被序列化 2 transient 透明的修饰的不能序列化
IO
字节 字符
流名称 输入流 输出流 输入流 输出流 功能
4大基类 InputStream OutputStream Reader Writer 抽象类
文件流* FileInputStream FileOutputStream FileReader FileWriter 节点流
System类* System.in System.out
缓存流* BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter 处理流
转换流* InputStreamReader OutputStreamWriter 处理流
打印流 PrintStream PrintWriter
内存流* ByteArrayInputStream ByteArrayOutputStream 节点流
数据流 DataInputStream DataOutputStream 处理流
对象流 ObjectInputStream ObjectOutputStream 处理流 对象序列化和反序列化
随机访问文件 RandomAccessFile类(Object类的子类)
读
字节 int read() int read(byte[] b) int read(byte[] b,int off,int len) 字符 int read() int read(char[] ch) int read(char[] ch,int off,int len) String readLine()---->BufferedReader
写
字节 void write(int b) void write(byte[] b) void write(byte[] b,int off,int len) 字符 void write(int c) void write(char[] ch) void write(char[] ch,int off,int len) void write(String s) void write(String s,int off, int len) void newLine()--->BufferedWriter
数据流:
readXXX() writeXXX()
对象流 :对象是可序列化的 implements java.io.Serializable;
readXXX() writeXXX() readObject() writeObject()
内存流:长度可变的字节数组
ByteArrayOutputStream: byte[] toByteArray() String toString() writeTo(OutputStream os) ![IO流汇总](https://img-blog.csdn.net/20151217213248162)
相关文章推荐
- android WebView加载 assets html文件
- 信息学院研究生学硕党支部请假制度
- 信息学院研究生学硕党支部请假制度
- 手机游戏如何运用AARRR模型进行推广运营?
- nginx源码分析
- java堆内存探究
- 漫谈 Clustering (番外篇): Vector Quantization
- MVC中数据验证
- Unity中鼠标左键按下,拖拽物体移动
- iOS开发中打开本地应用、打开appStore应用、给app评分功能实现
- 朋友总理的ios面试题
- 转-JS之Window对象
- AspJpeg组件,按宽高比例,真正生成缩略图
- 反射知识整理(一)
- Android 最简单的导航栏实现
- 多线程编程 注意事项汇总 待续..
- setTimeout与setInterval参数之String
- 漫谈 Clustering (5): Hierarchical Clustering
- 20151217--Ajax的一点补充
- button的基本使用