读书人

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

发布时间: 2012-11-17 11:14:15 作者: rapoo

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

java做编码转换有两中方法

1.基于流的编码转换

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 encodingReader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint c;while ((c = reader.read()) != -1) {sb.append((char) c);}reader.close();// get byte arrayInputStream tarIs = new ByteArrayInputStream(sb.toString().getBytes(tarEnc));return tarIs;}public static InputStream converterToUTF(InputStream is, String srcEnc)throws IOException {// builder a reader using source encodingReader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint c;while ((c = reader.read()) != -1) {sb.append((char) c);}reader.close();// get byte arrayInputStream 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 encodingReader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint c;while ((c = reader.read()) != -1) {sb.append((char) c);}reader.close();// get byte arrayreturn sb.toString().getBytes(tarEnc);}public static byte[] converterToUTFByteArray(InputStream is, String srcEnc)throws IOException {// builder a reader using source encodingReader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint c;while ((c = reader.read()) != -1) {sb.append((char) c);}reader.close();// get byte arrayreturn sb.toString().getBytes("utf-8");}public static String converterToString(InputStream is, String srcEnc, String tarEnc)throws IOException {// builder a reader using source encodingReader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint 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 encodingReader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint 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 encodingInputStream is = new ByteArrayInputStream(bytes);Reader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint c;while ((c = reader.read()) != -1) {sb.append((char) c);}reader.close();// get byte arrayInputStream tarIs = new ByteArrayInputStream(sb.toString().getBytes(tarEnc));return tarIs;}public static InputStream converterToUTF(byte[] bytes, String srcEnc)throws IOException {// builder a reader using source encodingInputStream is = new ByteArrayInputStream(bytes);Reader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint c;while ((c = reader.read()) != -1) {sb.append((char) c);}reader.close();// get byte arrayInputStream 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 encodingInputStream is = new ByteArrayInputStream(bytes);Reader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint c;while ((c = reader.read()) != -1) {sb.append((char) c);}reader.close();// get byte arrayreturn sb.toString().getBytes(tarEnc);}public static byte[] converterToUTFByteArray(byte[] bytes, String srcEnc)throws IOException {// builder a reader using source encodingInputStream is = new ByteArrayInputStream(bytes);Reader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint c;while ((c = reader.read()) != -1) {sb.append((char) c);}reader.close();// get byte arrayreturn sb.toString().getBytes("utf-8");}public static String converterToString(byte[] bytes, String srcEnc, String tarEnc)throws IOException {// builder a reader using source encodingInputStream is = new ByteArrayInputStream(bytes);Reader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint 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 encodingInputStream is = new ByteArrayInputStream(bytes);Reader reader = new InputStreamReader(is, srcEnc);StringBuilder sb = new StringBuilder();// read contentint 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());}}
? 1 楼 tutu1982 2009-05-02 。。。。。。。。。。。

读书人网 >软件架构设计

热点推荐