数据类型转化(java)

1、string-->byte[]

public static byte[] stringToBytes(String str){
		if (str.length() % 2!=0)
			return null;
		
		char[] bs = str.toCharArray();
		byte[] result=new byte[(int)(bs.length /2)];
		byte r=0;
		for (int i=0;i<bs.length;i++){			
			switch (bs[i])
			{
				case '0':
				case '1':
				case '2':
				case '3':
				case '4':
				case '5':
				case '6':
				case '7':
				case '8':
				case '9':
					r=(byte)((r<<4)|((bs[i]-'0')));
					break;
				case 'a':
				case 'b':
				case 'c':
				case 'd':
				case 'e':
				case 'f':
					r=(byte)((r<<4)|((bs[i]-'a')+0x0a));
					break;
				case 'A':
				case 'B':
				case 'C':
				case 'D':
				case 'E':
				case 'F':
					r=(byte)((r<<4)|(((bs[i]-'A')+0x0a)));
					break;
				default:
					return null;
			}
			if (i>0&&(i % 2!=0)){
				result[(int)(i/2)]=r;
				r=0;
			}
		}
		return result;
		
	}    

2、byte[]-->string

public static String bytesToString(byte[] data,int offset,int len){
		final String[] str=new String[]{"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"}; 
		StringBuilder sb = new StringBuilder();
		byte tmp;
		for (int i=offset;i<offset+len;i++)
		{
			tmp=data[i];
			byte h=(byte)(tmp>>4);
			if (h<0)
				h=(byte)(16+h);
			byte l=(byte)(tmp&0x0F);
			if (l<0)
				l=(byte)(16+l);
			sb.append(str[h]);
			sb.append(str[l]);
			
		}
		return sb.toString();
	}

3、string-->inputstream

InputStream is= new ByteArrayInputStream(str.getBytes());

4、inputstream-->string

InputStream inputStream = new FileInputStream("d:/test.txt");
Scanner scanner = new Scanner(inputStream, "UTF-8");
String str = scanner.useDelimiter("\\A").next();
scanner.close();



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值