JavaSE总结-IO流之间的转换流

转换流
所谓转换流,就是在字节流和字符流之间的一个桥梁,有了转换流,如果没有指定字符编码,默认编码为GBK.
为了提高效率,可以在中间建立一个缓冲数组,包装到BufferedWriter/BufferedReader中,避免频繁调用切换器
例如:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

BufferedWriter out = new BufferedWriter(new OutputStreaWriter(System.in))

API文档中抓转换流中的构造方法:

InputStreamReader中的构造方法*
InputStreamReader(InputStream in)
//创建一个使用默认字符集的InputStreamReader

InputStreamReader(InputStream in, charset cs)
//创建使用给定字符集的InputStreamReader

InputStreamReader(InputStream in,charsetDecoder dec)
//创建使用给定字符集解码器的InputStreamReader

InputStreamReader(InputStream in, String charsetName)
//创建使用指定字符集的InputStreamReader

方法摘要
void close()
//关闭流并释放

String getEncoding()
//返回流的编码名称

int read()
//读取单个字符

boolean ready()
//判断此流是否已经准备好用去读取

OutputStreamWriter:
语法格式:
Writer out = new BufferedWriter(new OutputStreamWriter(System.in))
构造方法摘要:

OutputStreamWriter(OutputStream out)
//创建默认编码的OutputStreamWriter
OutputStreamWriter(OutputStream ,Charset cs)
//创建使用给定字符集OutputStreamWriter

OutputStreamWriter(OutputStream out, CharsetEncoder enc)
//创建使用给定字符集编码的OutputStreamWrite
OutputStreamWriter(OutputStream out, String charsetName)
//创建使用指定字符集的 OutputStreamWriter。

方法摘要:
void close()
//关闭资源
void flush()
//刷新缓存
String getEncoding()
//返回流中的字符编码
void write(char[] cbuf, int off, int len)
//写入字符数组的某一部分
void write(int c)
// 写入单个字符
void write(String str, int off, int len)
// 写入字符串的某一部分。

下面举个例子来说明转换流的用法:

package Practice;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ConversionIO {
/**
 * 转换流
 * @param args
 * 所谓转换流,就是将字节流转换为字符流,作为字节流和字符流的转换的桥梁
 */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //获取便准输入流
        InputStream  in = System.in;

        //将字节流转换为字符流
        InputStreamReader inputStreamReader = new InputStreamReader(in);

        //缓冲字符流
        BufferedReader bufferedReader = new  BufferedReader(inputStreamReader);

        //读取行数内容
        String string = null;
        while ((string = bufferedReader.readLine()) != null) {
            if (条件语句) {
                //执行语句
                System.out.println("程序测试完毕!");
            }
            System.out.println("程序测试完毕!");
        }


    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值