zoukankan      html  css  js  c++  java
  • 转换流

    转换流原理:字节流+编码表

    原理图

    OutputStreamWriter 是字符流通向字节流的桥梁

    package com.oracle.demo01;
    
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    
    public class Demo1 {
    	public static void main(String[] args) throws IOException {
    		// 明确目的地
    		FileOutputStream fos = new FileOutputStream("D:\demo1018\jbk.txt",true);
    		// 添加转换流指定码表
    		OutputStreamWriter osw = new OutputStreamWriter(fos, "utf-8");
    		// 写一个字符串
    		osw.write("新年好呀");
    		// 释放资源
    		osw.close();
    	}
    }
    

    InputStreamReader 是字节流通向字符流的桥梁

    package com.oracle.demo01;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    
    public class Demo2 {
    
    	public static void main(String[] args) throws IOException {
    		//名确数据源
    		FileInputStream fis=new FileInputStream("D:\demo1018\utf8.txt");
    		//添加指定转换流码表
    		InputStreamReader isr=new InputStreamReader(fis,"utf-8");
    		//一个字符读
    		int  len=0;
    		while ((len=isr.read())!=-1) {
    			System.out.println((char)len);
    		}
    		/*//一个字符数组读
    		char ch[]=new char[1024];
    		int len=0;
    		while ((len=isr.read(ch))!=-1) {
    			System.out.println(new String(ch,0,len));
    		}*/
    		//释放资源
    		isr.close();
    	}
    
    }
    

    转换流和子类区别

      字节--->字符 : 看不懂的--->看的懂的。  需要读。输入流。 InputStreamReader

      字符--->字节 : 看的懂的--->看不懂的。  需要写。输出流。 OutputStreamWrite

      使用子类条件:1、操作的是文件。2、使用默认编码。

    InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));//默认字符集。
    InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"),"GBK");//指定GBK字符集。
    FileReader fr = new FileReader("a.txt");
    这三句代码的功能是一样的,其中第三句最为便捷。
    

      

      

  • 相关阅读:
    RegExp.$1
    Wide&Deep 模型学习教程
    docker 安装与使用的相关问题
    Centos 防火墙
    odoo ERP 系统安装与使用
    Linux 开机自动启动脚本
    intel RDT技术管理cache和memory_bandwidth
    tensorflow 中 inter_op 和 intra_op
    centos 7 安装 nginx 或 apache,及其比较
    Dependency injection in .NET Core的最佳实践
  • 原文地址:https://www.cnblogs.com/zqy6666/p/12298278.html
Copyright © 2011-2022 走看看