• IO流之转换流


    1.转换流的意义

    由于某些电脑的系统默认编码与文本文档或有需求时的编码不同时,这是就要用到转换流来进行编码集的转换。

    2.OutputStreamWriter类

    首先我们看到Writer结尾,那肯定是字符类的,我们再看构造方法,他还是不能自己确定目的地。

    实际操作

     1 public class demo01 {
     2     public static void main(String[] args) throws IOException {
     3         //明确目的地
     4         FileOutputStream fos = 
     5                 new FileOutputStream("D:\io0429\utf8.txt");
     6         //添加转换流
     7         OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8");
     8         //写入字符
     9         osw.write("你好");
    10         //释放资源
    11         osw.close();
    12     }
    13 }

    3.InputStreamReader

    构造方法相同

    注意:在读取指定的编码的文件时,一定要指定编码格式,否则就会发生解码错误,而发生乱码现象。

    实际操作

     1 public class demo02 {
     2     public static void main(String[] args) throws IOException {
     3         //明确数据源
     4         FileInputStream fis = new FileInputStream("D:\io0429\utf8.txt");
     5         //添加转换流
     6         InputStreamReader isr = new InputStreamReader(fis,"utf-8");
     7         int len = 0;
     8         while((len = isr.read()) != -1){
     9             System.out.println((char)len);
    10         }
    11         //释放资源
    12         isr.close();
    13     }
    14 }

    4.流的操作规律

    第一点:要操作的是数据源还是目的地

    源:InputStream Reader; 目的地: OutputStream Writer;

    第二点:要操作的数据是字节还是文本

    字节:InputStream OutPutStream; 文本:Writer Reader;

    第三点:明确数据所在的具体位置

    源设备:

               硬盘:文件  File开头。

               内存:数组,字符串。

               键盘:System.in;

               网络:Socket

    目的设备:

               硬盘:文件  File开头。

               内存:数组,字符串。

               屏幕:System.out

               网络:Socket

    第四点:是否需要额外功能

    转换流。InputStreamReader OutputStreamWriter

    缓冲区对象。BufferedOutputStream BufferedInputStream BufferedWriter BufferedReader

  • 相关阅读:
    实现一个简单的Http代理服务器
    微软的反向代理库YARP
    Elastic Search 基础——分析(Analysis)
    Elastic Seach基础—映射(Mapping)
    使用WebView2在.Net程序中集成Edge chromium
    Asp.net Core中实现自定义身份认证
    在Razor Pages的Url中增加扩展名后缀
    利用Aria2构造自己的下载工具(一)
    Mongodb中GUID的显示问题
    在Eclipse中使用MAT分析Android程序内存使用状况(转)
  • 原文地址:https://www.cnblogs.com/shenhx666/p/15062200.html
Copyright © 2020-2023  润新知