byte数组和String之间的相互转换代码

public static String converByteToString(byte[] data) {
		ByteArrayInputStream byteInput = null;
		GZIPInputStream gzin = null;
		ByteArrayOutputStream byteOutput = null;
		String data = null;
		byte[] byteData = null;
		byte[] buf = new byte[1024];
		try {
			byteInput = new ByteArrayInputStream(zippedData);
			gzin = new GZIPInputStream(byteInput);
			byteOutput = new ByteArrayOutputStream();
			int num = -1;
			while ((num = gzin.read(buf, 0, buf.length)) != -1) {
				byteOutput.write(buf, 0, num);
				byteOutput.flush();
			}
			byteData = byteOutput.toByteArray();
			if (null != byteOutput) {
				byteOutput.close();
			}
			if (null != byteInput) {
				byteInput.close();
			}
			if (null != gzin) {
				gzin.close();
			}
			data = new String(byteData, "UTF-8");

		} catch (IOException e) {
			log.error("[CrabmanFileUtil.converZipToString] [{0}]",e.getMessage());
			return null;
		}finally{
			byteInput = null;
			gzin = null;
			byteOutput = null;
			buf = null;
			byteData = null;
		}
		return data;
	}

	public static byte[] converStringToByte(String str) {
		ByteArrayOutputStream byteOutput = null;
		GZIPOutputStream gzout = null;
		byte[] data = null;
		try {
			byteOutput = new ByteArrayOutputStream();
			gzout = new GZIPOutputStream(byteOutput);
			gzout.write(str.getBytes("UTF-8"));
			gzout.finish();
			data = byteOutput.toByteArray();
		} catch (IOException e) {
			log.error(e.getMessage());
			return null;
		} finally{
			try {
				if (gzout != null) {
					gzout.close();
				}
				if (byteOutput != null) {
					byteOutput.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
				gzout = null;
				byteOutput = null;
			}
		}

		return data;
	}

时间: 2024-10-07 15:42:22

byte数组和String之间的相互转换代码的相关文章

byte数组与对象之间的相互转换

在进行网络通信时可能需要传输对象,如果用NIO的话,只能用Bytebuffer和channel直接 通过ByteArray*Stream和Object*Stream可以将byte数组和对象进行相互的转换. 1.byte数组转对象: byte [] data=initData();//初始化byte数组 ByteArrayInputStream inputStream=new ByteArrayInputStream(data); ObjectInputStream oInputStream=ne

C#List<string>和string[]之间的相互转换

 一.LIST概述 所属命名空间:System.Collections.Generic      public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable List<T>类是 ArrayList 类的泛型等效类.该类使用大小可按需动态增加的数组实现 IList<T> 泛型接口.  泛型的好处: 它为使

JAVA关于byte数组与String转换的问题

1 public class ToString{ 2 public static void main(String[] args){ 3 String aa = "hellow"; 4 byte[] bb = aa.getBytes(); 5 byte[] cc = aa.getBytes(); 6 7 System.out.println(aa); 8 System.out.println(bb.toString()); 9 System.out.println(cc.toStrin

json和string 之间的相互转换

json和string 之间的相互转换 <script type="text/javascript"> //先认识一下js中json function showInfo(){ var user={ "name":"jack", //字符串类型的值 "age":18, //数字类型的值 "info":{"tel":"110","cellphone&

C# char[]与string之间的相互转换

string 转换成 Char[] string ss = "abcdefg"; char[] cc = ss.ToCharArray(); Char[] 转换成string string s = new string(cc); byte[] 与 string 之间的转换 byte[] bb = Encoding.UTF8.GetBytes(ss); string s = Encoding.UTF8.GetString(bb); string[] 转换成string string st

java byte数组与String互转

java byte数组与String互转 CreationTime--2018年7月6日14点53分 Author:Marydon 1.String-->byte[] 方法:使用String.getBytes(charset)实现 String website = "http://www.cnblogs.com/Marydon20170307"; // String-->byte[],并指定字符集 byte[] b = website.getBytes("utf-

Delphi Byte数组与String类型的转换

string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节: 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度.引用计数等信息.字符序列以NULL结束. string[n] string[n] = ShortString = 短字符串,最多容纳255个字符,实际长度是字符长度+1,是Delphi的简单类型: Str[0]存储着字符的个数,

Delphi Byte数组与Int String之间的相互转换

http://www.cnblogs.com/lcw/p/3352864.html string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节: 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度.引用计数等信息.字符序列以NULL结束. string[n] string[n] = ShortString = 短字符串,最多容纳255个字符

[utf8编码的byte[]数组转换为String时要注意的问题]

1. 通过socket给Java传递byte[]数组时,utf-8的字节数组在转换为String, Java并不会遇到0就停止结束,而是一直使用完byte[]的容量, 所以在转换为Java的String需要自己判断字节值是0的位置,再截取数组长度. [cpp] view plaincopyprint? public  static int searchByte(byte[] data, byte value) { int size = data.length; for (int i = 0; i