Java SE之旅_08_IO流

编码时经常使用到流,但是流对象太多了, 如果不弄清楚流操作的规律就不知道用哪个对象合适.

如何选择合适的流对象?只要明确这四个步骤即可:

 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将字符转换成字节,用于编码.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值