[马士兵J2SE学习笔记]第八章 流
2016-06-28 11:08
239 查看
Java流式输入/输出原理
存储文件的空间好比一个水桶,接上管道之后就可以取水或者输水,这条管道就相当于“流”。
输入/输出流分类
按方向:输入流和输出流;按处理数据的单位:字节流和字符流;按功能:节点流和处理流
输入流和输出流都是站在程序的角度来讲
节点流:从一个特定的数据源(节点)读写数据
处理流:连接在已存在的流(节点流和处理流)上,就好比在管道外层再包上管道,目的是提供更强大的读写功能。
所有流类型位于包java.io内,分别继承自以下四种抽象流类型
凡是以Steam结尾的都是字节流
处理流:
缓冲流
BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter
转换流
InputStreamReader、OutputStreamWriter
new FileOutputStream("G:/java", true) 构造方法加true表示数据不擦除,即追加;
System.in 接受输入 in方法返回InputStream类型,相当于接了一条管道;
BufferedReader有一个方法比较好用,即readline();
数据流
DataInputStream,DataOutputStream提供了可以存取与机器无关的Java原始类型数据(如int,double)的方法。
Print流
PrintWriter,PrintStream
Object流
Serializable接口,没有定义方法,属于标记性接口。要想把某个类的对象序列化,必须实现Serializable接口。
transient关键字,被它修饰的成员变量在序列化时不予考虑。
Externalizable接口,自己定义序列化过程。
存储文件的空间好比一个水桶,接上管道之后就可以取水或者输水,这条管道就相当于“流”。
输入/输出流分类
按方向:输入流和输出流;按处理数据的单位:字节流和字符流;按功能:节点流和处理流
输入流和输出流都是站在程序的角度来讲
节点流:从一个特定的数据源(节点)读写数据
处理流:连接在已存在的流(节点流和处理流)上,就好比在管道外层再包上管道,目的是提供更强大的读写功能。
所有流类型位于包java.io内,分别继承自以下四种抽象流类型
字节流 | 字符流 | |
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
处理流:
缓冲流
BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter
转换流
InputStreamReader、OutputStreamWriter
new FileOutputStream("G:/java", true) 构造方法加true表示数据不擦除,即追加;
System.in 接受输入 in方法返回InputStream类型,相当于接了一条管道;
BufferedReader有一个方法比较好用,即readline();
数据流
DataInputStream,DataOutputStream提供了可以存取与机器无关的Java原始类型数据(如int,double)的方法。
Print流
PrintWriter,PrintStream
Object流
Serializable接口,没有定义方法,属于标记性接口。要想把某个类的对象序列化,必须实现Serializable接口。
transient关键字,被它修饰的成员变量在序列化时不予考虑。
Externalizable接口,自己定义序列化过程。
相关文章推荐
- React 入门实例教程
- lintcode之Wood-Cut问题
- dom 节点(文档对象模型)详细介绍
- Android ObjectAnimator基础用法
- linux 策略路由实例解析
- Windows7+VS2012下64位OpenCV3.0+CUDA7.5的编译和部署
- Linux下文件内容查阅命令
- 不需要注解就能看出代码含义的一些方法
- 用开源工具Xplico助力网络应用层数据解码
- Myeclipse下不用dom4j等解析xml文档
- linux 定时备份mysql数据库
- UICollectionView的使用
- Xamarin中打开别人项目找不到android.jar文件
- 小白进阶之动态规划-矩阵链乘法
- EJB 企业级应用的架构(4)
- Quartz2D简单使用(一)
- Mybatis框架学习(三)—高级映射,延迟加载
- Apache开启PathInfo
- 使用 superagent 与 cheerio 完成简单爬虫
- Windows多线程编程总结