获取字符串中的bytedata数据
Get bytedata data in string
private static int readAndWriteInputStream( final InputStream is, final OutputStream outStream ) throws IOException {
final byte[] buf = new byte[ 8192 ];
int read = 0;
int cntRead;
while ( ( cntRead = is.read( buf, 0, buf.length ) ) >=0 )
{
outStream.write(buf, 0, cntRead);
read += cntRead;
}
outStream.write("\n".getBytes());
return read;
}
之前outStream.write(buf, 0, cntRead);我想将每一行(从输入文本中读取)文件放入一个字符串中。是否可以将此字节数据放入一个字符串中。
简单地说:
String s = new String(buf, 0, cntRead);
或者使用不使用默认字符集的字符集:
String s = new String(buf, 0, cntRead, Charset.forName("UTF-8"));
更好的方法是使用 proper String constructor:
String s = new String(buf, 0, cntRead);
这样可以避免不必要的数组复制。
此外,如果数据编码可能与您平台的默认编码不同,则您必须使用 a constructor,它将 Charset
作为附加参数。
private static int readAndWriteInputStream( final InputStream is, final OutputStream outStream ) throws IOException {
final byte[] buf = new byte[ 8192 ];
int read = 0;
int cntRead;
while ( ( cntRead = is.read( buf, 0, buf.length ) ) >=0 )
{
outStream.write(buf, 0, cntRead);
read += cntRead;
}
outStream.write("\n".getBytes());
return read;
}
之前outStream.write(buf, 0, cntRead);我想将每一行(从输入文本中读取)文件放入一个字符串中。是否可以将此字节数据放入一个字符串中。
简单地说:
String s = new String(buf, 0, cntRead);
或者使用不使用默认字符集的字符集:
String s = new String(buf, 0, cntRead, Charset.forName("UTF-8"));
更好的方法是使用 proper String constructor:
String s = new String(buf, 0, cntRead);
这样可以避免不必要的数组复制。
此外,如果数据编码可能与您平台的默认编码不同,则您必须使用 a constructor,它将 Charset
作为附加参数。