0
getBytes()メソッドを呼び出すことによってInputStream内のバイト配列データを取得しようとしていますが、コンソールに何も表示されません。その数は、どのようにして得られますか?9. InputStreamのバイトをどのように出力できますか?行のInputStreamからバイト配列を取得
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Test {
public static void main(String args[]) throws Exception {
InputStream inputStream = null;
ServerSocket serverSocket = new ServerSocket(27015);
while (true) {
Socket clientSocket = serverSocket.accept();
inputStream = clientSocket.getInputStream();
byte[] temp = new byte[512];
int count = inputStream.read(temp); // here I am getting 9
byte[] byteData = Test.getBytes(inputStream); // byteData is here empty.
System.out.println("byteData: " + byteData);
}
}
public static byte[] getBytes(InputStream is) throws IOException {
int len;
int size = 512;
byte[] buf;
if (is instanceof ByteArrayInputStream) {
size = is.available();
buf = new byte[size];
len = is.read(buf, 0, size);
} else {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
buf = new byte[size];
while ((len = is.read(buf, 0, size)) != -1) {
bos.write(buf, 0, len);
}
buf = bos.toByteArray();
}
return buf;
}
}