• 转换流 InputStreamReader


    通常接触到字节流和字符流,但是有一个流是这两个流的桥梁,inputStreamReader

    字符流的结构如下

     

    可以看到inputStreamReader是继承Reader ,它的子类是FileReader ,但Reader(),FileReader()构造方法接受的是File类型的文件路径,

    但是InputStreamReader()接受的是字节流!,所以他是一个桥梁,接受字节流,转为字符流

    InputStreamReader是从字节流到字符流的桥:它读取字节,并使用指定的charset将其解码为字符 。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。

    每个调用InputStreamReader的read()方法之一可能会导致从底层字节输入流读取一个或多个字节。 为了使字节有效地转换为字符,可以从底层流读取比满足当前读取操作所需的更多字节。

    为了最大的效率,请考虑在BufferedReader中包装一个InputStreamReader。 例如:

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

    在TCP传输中,我们通过套接字的方法socket.getOutPutStream(),可以拿到字符输出/输入流,
    但是如果要写入文件显然字符流比较方便,这时候我们通过转换字节流实现,
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));





  • 相关阅读:
    Linux vi或vim替换
    Linux vi或vim统计字符出现次数
    Pycharm 操作Git
    离线安装 Python三方包
    Python 列表排序,sort函数,分组排序
    执行shell脚本,并把执行结果存入文件
    Git 拉取近期提交的代码
    Python base64编码和解码
    媒体信息源
    每日随笔
  • 原文地址:https://www.cnblogs.com/doudou2018/p/9751491.html
Copyright © 2020-2023  润新知