Java SE之旅_08_IO流
来源:互联网 发布:linux新建用户步骤 编辑:程序博客网 时间:2024/05/22 16:21
编码时经常使用到流,但是流对象太多了, 如果不弄清楚流操作的规律就不知道用哪个对象合适.
如何选择合适的流对象?只要明确这四个步骤即可:
1. 确定源(InputStream/Reader)和目的(OutputStream/Writer)
2. 是否是纯文本(是: Reader和Writer)
3. 明确具体的设备: 键盘(System.in or System.out), 硬盘(File), 内存(数组), 网络(Socket)
4. 是否需要额外功能?( 需要转换(字节<-->字符) :InputSteamReader/OutputStreamwriter; 需要高效:BufferedXxx)
具体分析:
1. 明确源和目的
源 : InputStream / Reader
目的: OutputStream / Writer
2: 明确数据是否是纯文本数据(明确具体要使用哪个体系)
源: 是纯文本, 使用Reader
不是纯文本: 使用InputStream
目的: 是纯文本 ,使用Writer
不是纯文本: 使用OutputStream
3: 明确具体的设备
源设备:
硬盘:File
键盘:System.in
内存:数组
网络:Socket流
目的设备:
硬盘:File
控制台:System.out
内存:数组
网络:Socket流
4: 是否需要其他额外功能?
是否需要缓冲区(提高效率): 是,则加上Buffered;
是否需要在字节和字符间转换: 是,则使用转换流(InputStreamReader / OutputStreamWriter)
是否需要指定编码: 是,则使用转换流(InputStreamReader / OutputStreamWriter)
PS:
InputStreamReader将字节转换成字符,用于解码; OutputStreamWriter将字符转换成字节,用于编码.
- Java SE之旅_08_IO流
- 181_08_IO流_FileInputStream_01
- 182_08_IO流_FileInputStream_02
- 186_08_IO流_FileInputStream__06_available_skip方法
- Java SE 6 Web Service 之旅
- Java SE之旅_04_死锁
- Java SE之旅_05_守护线程
- Java SE之旅_07_集合框架
- Java SE之旅_09_代理Proxy
- Java SE之IO流家族
- Java SE 之Map
- Java SE 之 Collection集合
- Java SE之异常机制
- Java SE学习之Random
- Java SE学习之路
- Java SE之集合学习
- JAVA SE之基本数据类型
- Java SE之Map接口
- Groovy---集合类型
- 索引组织表
- Android开发之Service通过Messenger实现线程间的通信
- 并查集-poj-1182
- mongodb数据导入导出以及备份恢复
- Java SE之旅_08_IO流
- jquery 导出excel
- 打开Photoshop里白色偏黄解决方法
- 实现sudo 命令免密码执行
- SeekBar . RatingBar
- 第一个博客
- 关于On release of batch it still contained JDBC statements异常的疑问
- 韩顺平老师 Mysql优化 笔记
- Java的this和super的用法