如何将一部分字节数组附加到Java下的StringBuilder对象?我有一个函数段,从InputStream读取到一个字节数组.然后我想将我读到的任何内容追加到StringBuilder对象中:
byte[] buffer = new byte[4096];
InputStream is;
//
//some setup code
//
while (is.available() > 0)
{
int len = is.read(buffer);
//I want to append buffer[0] to buffer[len] into StringBuilder at this point
}
Run Code Online (Sandbox Code Playgroud)
Sou*_*man 26
您不应该使用a StringBuilder,因为这可能导致可变宽度编码的编码错误.您可以使用a java.io.ByteArrayOutputStream,并在读取所有数据后将其转换为字符串:
byte[] buffer = new byte[4096];
ByteArrayOutputStream out = new ByteArrayOutputStream();
InputStream is;
//
//some setup code
//
while (is.available() > 0) {
int len = is.read(buffer);
out.write(buffer, 0, len);
}
String result = out.toString("UTF-8"); // for instance
Run Code Online (Sandbox Code Playgroud)
如果已知编码不包含多字节序列(例如,您正在使用ASCII数据),则使用a StringBuilder将起作用.
Ian*_*las 15
你可以从缓冲区中创建一个String:
String s = new String(buffer, 0, len);
然后,如果需要,可以将它附加到StringBuilder.
| 归档时间: |
|
| 查看次数: |
23727 次 |
| 最近记录: |