转换流

Posted zqy6666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转换流相关的知识,希望对你有一定的参考价值。

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

原理图

技术图片

 

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:demo1018jbk.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:demo1018utf8.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");
这三句代码的功能是一样的,其中第三句最为便捷。

  

  

 

以上是关于转换流的主要内容,如果未能解决你的问题,请参考以下文章

此应用小部件片段中所有意图 (PendingIntents) 的逻辑流

在代码片段中包含类型转换

sql 日期转换代码片段 - Dato,120,konvertere

HTML Bookmarklet模板:将任何JavaScript代码片段转换为Bookmarklet

结合两个代码片段?将用户输入的 Youtube url 转换为嵌入 url,然后将 iframe src 替换为转换后的 url

片段无法转换为上下文