转换流
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