1. 程式人生 > >byte陣列和String之間的相互轉換程式碼

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;
	}