在我的readMessage函数中,收到错误消息“ OutputStream是抽象的;无法实例化”。我应该使用哪种数据类型来存储读取的数据?请忽略返回值是String。
private String readMessage() throws IOException {
byte[] messageChunk = new byte[1024];
int bytesRead = 0;
OutputStream messageData = new OutputStream();
boolean end = false;
while ( !end ) {
bytesRead = in.read(messageChunk);
if ( bytesRead > 2 && messageChunk[bytesRead - 2] == '\r' ) end = true; // TODO: is -2 correct?
else if ( bytesRead == 1 && messageChunk[bytesRead - 1] == '\n' ) end = true;
messageData.write(messageChunk, 0, bytesRead);
}
return messageData.toString();
}
最佳答案
这是因为OutputStream类是一个抽象类。您不能在没有实现的情况下使用new关键字从抽象类创建实例。
为什么不使用ByteArrayOutputStream
而不是OutputStream