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

0 0
原创粉丝点击