/** * inputStream转string按编码 * * @param is 输入流 * @param charsetName 编码格式 * @return 字符串 */ public static String inputStream2String(final InputStream is, final String charsetName) { if (is == null || isSpace(charsetName)) return null; try { return new String(inputStream2Bytes(is), charsetName); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } }
/** * string转outputStream按编码 * * @param string 字符串 * @param charsetName 编码格式 * @return 输入流 */ public static OutputStream string2OutputStream(final String string, final String charsetName) { if (string == null || isSpace(charsetName)) return null; try { return bytes2OutputStream(string.getBytes(charsetName)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } }
/** * hexString转byteArr * <p>例如:</p> * hexString2Bytes("00A8") returns { 0, (byte) 0xA8 } * * @param hexString 十六进制字符串 * @return 字节数组 */ public static byte[] hexString2Bytes(String hexString) { if (isSpace(hexString)) return null; int len = hexString.length(); if (len % 2 != 0) { hexString = "0" + hexString; len = len + 1; } char[] hexBytes = hexString.toUpperCase().toCharArray(); byte[] ret = new byte[len >> 1]; for (int i = 0; i < len; i += 2) { ret[i >> 1] = (byte) (hex2Dec(hexBytes[i]) << 4 | hex2Dec(hexBytes[i + 1])); } return ret; }
/** * outputStream转string按编码 * * @param out 输出流 * @param charsetName 编码格式 * @return 字符串 */ public static String outputStream2String(final OutputStream out, final String charsetName) { if (out == null || isSpace(charsetName)) return null; try { return new String(outputStream2Bytes(out), charsetName); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } }
@Test public void inputStream2Bytes_bytes2InputStream() throws Exception { String string = "this is test string"; assertTrue( Arrays.equals( string.getBytes("UTF-8"), ConvertKit.inputStream2Bytes(ConvertKit.bytes2InputStream(string.getBytes("UTF-8"))) ) ); }
/** * inputStream转byteArr * * @param is 输入流 * @return 字节数组 */ public static byte[] inputStream2Bytes(final InputStream is) { if (is == null) return null; return input2OutputStream(is).toByteArray(); }
/** * string转inputStream按编码 * * @param string 字符串 * @param charsetName 编码格式 * @return 输入流 */ public static InputStream string2InputStream(final String string, final String charsetName) { if (string == null || isSpace(charsetName)) return null; try { return new ByteArrayInputStream(string.getBytes(charsetName)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } }
/** * hexString转byteArr * <p>例如:</p> * hexString2Bytes("00A8") returns { 0, (byte) 0xA8 } * * @param hexString 十六进制字符串 * @return 字节数组 */ public static byte[] hexString2Bytes(String hexString) { if (StringKit.isBlank(hexString)) return null; int len = hexString.length(); if (len % 2 != 0) { hexString = "0" + hexString; len = len + 1; } char[] hexBytes = hexString.toUpperCase().toCharArray(); byte[] ret = new byte[len >> 1]; for (int i = 0; i < len; i += 2) { ret[i >> 1] = (byte) (hex2Dec(hexBytes[i]) << 4 | hex2Dec(hexBytes[i + 1])); } return ret; }
} else { buf.append(" class='css'>"); String size = ConvertKit.byte2FitMemoryString(f.length); buf.append(name).append("</a><i>"); buf.append(size).append("</i></li>");
@Test public void bytes2Bits_bits2Bytes() throws Exception { assertEquals( "0111111111111010", ConvertKit.bytes2Bits(new byte[]{0x7F, (byte) 0xFA}) ); assertEquals( "0111111111111010", ConvertKit.bytes2Bits(ConvertKit.bits2Bytes("111111111111010")) ); }
@Test public void byte2FitMemorySize() throws Exception { assertEquals( "3.098MB", ConvertKit.byte2FitMemorySize(1024 * 1024 * 3 + 1024 * 100) ); }
/** * outputStream转string按编码 * * @param out 输出流 * @param charsetName 编码格式 * @return 字符串 */ public static String outputStream2String(final OutputStream out, final String charsetName) { if (out == null || isSpace(charsetName)) return null; try { return new String(outputStream2Bytes(out), charsetName); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } }
/** * inputStream转byteArr * * @param is 输入流 * @return 字节数组 */ public static byte[] inputStream2Bytes(final InputStream is) { if (is == null) return null; return input2OutputStream(is).toByteArray(); }
/** * string转inputStream按编码 * * @param string 字符串 * @param charsetName 编码格式 * @return 输入流 */ public static InputStream string2InputStream(final String string, final String charsetName) { if (string == null || isSpace(charsetName)) return null; try { return new ByteArrayInputStream(string.getBytes(charsetName)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } }
/** * hexString转byteArr * <p>例如:</p> * hexString2Bytes("00A8") returns { 0, (byte) 0xA8 } * * @param hexString 十六进制字符串 * @return 字节数组 */ public static byte[] hexString2Bytes(String hexString) { if (StringKit.isBlank(hexString)) return null; int len = hexString.length(); if (len % 2 != 0) { hexString = "0" + hexString; len = len + 1; } char[] hexBytes = hexString.toUpperCase().toCharArray(); byte[] ret = new byte[len >> 1]; for (int i = 0; i < len; i += 2) { ret[i >> 1] = (byte) (hex2Dec(hexBytes[i]) << 4 | hex2Dec(hexBytes[i + 1])); } return ret; }
} else { buf.append(" class='css'>"); String size = ConvertKit.byte2FitMemoryString(f.length); buf.append(name).append("</a><i>"); buf.append(size).append("</i></li>");
/** * inputStream转string按编码 * * @param is 输入流 * @param charsetName 编码格式 * @return 字符串 */ public static String inputStream2String(final InputStream is, final String charsetName) { if (is == null || isSpace(charsetName)) return null; try { return new String(inputStream2Bytes(is), charsetName); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } }
/** * string转outputStream按编码 * * @param string 字符串 * @param charsetName 编码格式 * @return 输入流 */ public static OutputStream string2OutputStream(final String string, final String charsetName) { if (string == null || isSpace(charsetName)) return null; try { return bytes2OutputStream(string.getBytes(charsetName)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } }
/** * outputStream转string按编码 * * @param out 输出流 * @param charsetName 编码格式 * @return 字符串 */ public static String outputStream2String(final OutputStream out, final String charsetName) { if (out == null || isSpace(charsetName)) return null; try { return new String(outputStream2Bytes(out), charsetName); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } }
/** * hexString转byteArr * <p>例如:</p> * hexString2Bytes("00A8") returns { 0, (byte) 0xA8 } * * @param hexString 十六进制字符串 * @return 字节数组 */ public static byte[] hexString2Bytes(String hexString) { if (isSpace(hexString)) return null; int len = hexString.length(); if (len % 2 != 0) { hexString = "0" + hexString; len = len + 1; } char[] hexBytes = hexString.toUpperCase().toCharArray(); byte[] ret = new byte[len >> 1]; for (int i = 0; i < len; i += 2) { ret[i >> 1] = (byte) (hex2Dec(hexBytes[i]) << 4 | hex2Dec(hexBytes[i + 1])); } return ret; }