`
tuoxie007
  • 浏览: 160183 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自己封装的一个编码转换工具类

    博客分类:
  • Java
阅读更多

java做编码转换有两中方法

1.基于流的编码转换

  InputStream is = Main.class.getResourceAsStream(fileName);
  BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
  String tmp;
  while((tmp = br.readLine()) != null){
    System.out.println(tmp);
  }
 

 

 

2.基于字符的编码转换

  InputStream is = Main.class.getResourceAsStream(fileName);
  BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
  String tmp;
  while((tmp = br.readLine()) != null){
    System.out.println(tmp);
  }
 

 

我这里用的是第一种方法,其他不多说了直接贴代码了

 

import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

public class EncodingConverter {

	public static final String UTF_8 = "UTF-8";
	
	public static InputStream converter(InputStream is, String srcEnc, String tarEnc)
			throws IOException {

		// builder a reader using source encoding
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		// get byte array
		InputStream tarIs = new ByteArrayInputStream(sb.toString().getBytes(tarEnc));
		return tarIs;
	}

	public static InputStream converterToUTF(InputStream is, String srcEnc)
			throws IOException {

		// builder a reader using source encoding
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		// get byte array
		InputStream tarIs = new ByteArrayInputStream(sb.toString().getBytes("utf-8"));
		return tarIs;
	}

	public static byte[] converterToByteArray(InputStream is, String srcEnc, String tarEnc)
			throws IOException {

		// builder a reader using source encoding
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		// get byte array
		return sb.toString().getBytes(tarEnc);
	}

	public static byte[] converterToUTFByteArray(InputStream is, String srcEnc)
			throws IOException {

		// builder a reader using source encoding
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		// get byte array
		return sb.toString().getBytes("utf-8");
	}

	public static String converterToString(InputStream is, String srcEnc, String tarEnc)
			throws IOException {

		// builder a reader using source encoding
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		return sb.toString();
	}

	public static String converterToUTFString(InputStream is, String srcEnc)
			throws IOException {

		// builder a reader using source encoding
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		return sb.toString();
	}

	public static InputStream converter(byte[] bytes, String srcEnc, String tarEnc)
			throws IOException {

		// builder a reader using source encoding
		InputStream is = new ByteArrayInputStream(bytes);
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		// get byte array
		InputStream tarIs = new ByteArrayInputStream(sb.toString().getBytes(tarEnc));
		return tarIs;
	}

	public static InputStream converterToUTF(byte[] bytes, String srcEnc)
			throws IOException {

		// builder a reader using source encoding
		InputStream is = new ByteArrayInputStream(bytes);
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		// get byte array
		InputStream tarIs = new ByteArrayInputStream(sb.toString().getBytes("utf-8"));
		return tarIs;
	}

	public static byte[] converterToByteArray(byte[] bytes, String srcEnc, String tarEnc)
			throws IOException {

		// builder a reader using source encoding
		InputStream is = new ByteArrayInputStream(bytes);
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		// get byte array
		return sb.toString().getBytes(tarEnc);
	}

	public static byte[] converterToUTFByteArray(byte[] bytes, String srcEnc)
			throws IOException {

		// builder a reader using source encoding
		InputStream is = new ByteArrayInputStream(bytes);
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		// get byte array
		return sb.toString().getBytes("utf-8");
	}

	public static String converterToString(byte[] bytes, String srcEnc, String tarEnc)
			throws IOException {

		// builder a reader using source encoding
		InputStream is = new ByteArrayInputStream(bytes);
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		return sb.toString();
	}

	public static String converterToUTFString(byte[] bytes, String srcEnc)
			throws IOException {

		// builder a reader using source encoding
		InputStream is = new ByteArrayInputStream(bytes);
		Reader reader = new InputStreamReader(is, srcEnc);
		StringBuilder sb = new StringBuilder();

		// read content
		int c;
		while ((c = reader.read()) != -1) {
			sb.append((char) c);
		}
		reader.close();

		return sb.toString();
	}
	public static void main(String[] args) throws IOException {
		InputStream is = new FileInputStream("G:/out.txt");
		is = converter(is, "utf-8", "gbk");
		Reader isr = new InputStreamReader(is, "gbk");
		StringBuilder sb = new StringBuilder();
		int c;
		while ((c = isr.read()) != -1) {
			sb.append((char) c);
		}
		is.close();
		System.out.println(sb.toString());
	}
}
 
分享到:
评论
2 楼 u148 2014-10-13  
java.io.IOException: Stream closed
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:325)
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.read(BufferedReader.java:175)

有时候会报这个错误.
1 楼 tutu1982 2009-05-02  
。。。。。。。。。。。

相关推荐

    基于netbeans下面有界面操作的编码转换工具native2ascii

    这个是一个基于netbeans下开发的有操作界面的编码转换工具,其中只是将java自带的native2ascii工具做了一次封装,让其具有方便的界面操作,它可以实现将你想要转换的文件/文件夹拖入输入框,又可以通过设置你机子上...

    Transcoding_setup_v0.7.1 文件编码转换

    总是遇到文件编码不一致的情况,自己抽时间用java开发了一款编码转换小工具,已封装成exe,图形化操作界面,内置使用说明,欢迎下载使用。 支持批量转换 支持单个文件转换 支持gb2312、gbk(ansi)、gb18030、utf-8、...

    java基础工具类iceroot

    iceroot是一个java基础工具类.封装了很多有用的方法. 该类库无任何第三方依赖. 涵盖了 字符串操作 时间转化 读取配置文件 等方面. 基础工具类对于java代码的编写是非常必要的,然 而很多常见的操作在很多第三方类库...

    FormatConverter视频格式转换工具V4.0.0免费安装版

    FormatConverter视频格式转换工具是一款功能强大的全能视频格式转换软件,支持多种视频格式转换,视频文件的预览、分析,并按照用户设定的参数转码成avi、rm、wmv格式,支持对相同封装格式和相同音视频编码参数的...

    各种编码的转码工具

    自己封装的一个多功能转码工具,支持各种字符编码之间的转换以及urlencode的编解码,base64等

    javascript-obfuscatorJS编码器

    javascript-obfuscatorJS编码器

    海康威视 摄像头播放录像文件格式转换工具(FormatConvert)V4.0

    海康录像文件格式转换工具V4.0支持多种文件格式转换,源文件格式如*.mp4,*.flv,*.avi,*.3gp,*.mp3,*.jpg,*.jpeg;输出文件格式如*.mp4,*.aac,*.jpg。并按照用户设定的参数转码成avi、rm、wmv格式。 支持对...

    JAVA字符串操作类CTool.java字符转换类.rar

    封装的功能:字符串从GBK编码转换为Unicode编码、对字符串进行md5加密、sql语句 处理、把null转换为字符串"0"、null 处理、long型变量转换成String型变量、int型变量转换成String型变量、String型变量转换成int型...

    DICOM国际会议暨研讨会:在Acrobat中直接提供DICOM封装PDF支持的优点

    试验表明,磁盘空间用于存储一个报告的PDF文档与用于存储同一文档转换成静态SC图像相比的效率为20:1到30:1:将1比特单页PDF文件传送作为JPEG基准编码SC图像时为20:1(原件30KB/DICOM SC图像600KB);将复杂单页RGB...

    通用Android工具库Common4Android.zip

    转换工具类,进行对象的类型转换。 DateUtil.java 日期工具类,日期转换生肖、日期转换星座、日期相互转换。 DesUtil.java DES加密工具类。 ...

    http get post 请求接口工具类

    post,get方式请求接口封装,参数加密方式请求,参数RSA签名, 转换字符集到utf8,base64编码字符串

    VCD格式制作工具(MPEG)

    俗你小日本,超强MPEG制作转换工具。可将RM、RMVB、AVI等格式的影音文件主换为MPEG1,或MPEG2编码,破解汉化版。 新增“剪辑”功能。 在影像源范围视窗中,“[”、“]”键可以分别用来设定开始帧、结束帧。 使用新...

    ffmpeg工具

    ffmpeg:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等; ffsever:一个 HTTP 多媒体即时广播串流服务器; ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;

    JS Html转义和反转义(html编码和解码)的实现与使用方法总结

    2、封装的JS工具类: var HtmlUtil = { /*1.用浏览器内部转换器实现html编码(转义)*/ htmlEncode:function (html){ //1.首先动态创建一个容器标签元素,如DIV var temp = document.createElement ("div");

    C#基类库大全

    2.一个操作Sql2005数据库的类(备份,还原,分离,附加,添加删除用户等操作) 帮助类 1.最新的Functions 类 2.最新的 PageValidate 类 3.JavascriptHelp 4.最新的皮肤帮助类 UI_Misc_Helper JavaScript|Jquery...

    Java之IO流学习总结

    在输出部分没有对应的部分,我们完全可以自己建立一个LineNumberOutputStream,在最初写入时会有一个基准的行号,以后每次遇到换行时会在下一行添加一个行号,看起来也是可以的。好像更不入流了。 ...

    头歌 计算机数据表示实验答案 1-9 educoder

    (1)帮助学生理解汉字机内码、区位码,最终能利用相关工具批量获取一段文字的 GB2312 机内码,并利用简单电路实现 GB2312 编码与区位码的转换; (2)学生了解字形码显示的基本原理,能在实验环境中实现汉字 GB2312 ...

    Java开发常用jar包

    1.commons-beanutils.jar...12.commons-DbUtils.jar:Apache组织提供的一个资源JDBC工具类库,它是对JDBC的简单封装,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 13.commons-Email.jar: 提供开源的API

    狸窝视频转换,mp4格式,视频体积小无失真

    狸窝视频转换是一款优秀的视频转换软件, 其最大优点就是可以将视频转换为mp4格式,且转换后的文件体积很小,视频质量无失真。 狸窝视频转换支持几乎所有主流视频格式的互相转换,无论是avi、rmvb、wmv还是mov、flv等...

    Avago推出 小型6通道光学增量C形编码器

    AvagoAEDB-9340系列模块包括一个光学半径为15 mm (0.590英寸)的编码轮,它是专为降低整个马达尺寸而设计的,可以简便地放入圆形编码器封装中。Avago这款光学编码器系列的最新成员为有壳编码器制造商提供的一款集成...

Global site tag (gtag.js) - Google Analytics