からするByteArrayInputStreamを使用すると、コードですが、エラーが発生しました:がバイトを受信[]ここソケット
bin = new ByteArrayInputStream(socket.getInputStream());
がソケットからByteArrayInputStream
を使用してbyte[]
を受信することが可能ですか?
からするByteArrayInputStreamを使用すると、コードですが、エラーが発生しました:がバイトを受信[]ここソケット
bin = new ByteArrayInputStream(socket.getInputStream());
がソケットからByteArrayInputStream
を使用してbyte[]
を受信することが可能ですか?
いいえ。ByteArrayInputStream
は、バイトの配列を持ち、ファイルであるかのように配列から読み込みたい場合に使用します。
InputStream stream = socket.getInputStream();
byte[] data = new byte[100];
int count = stream.read(data);
変数count
が実際に読み込まれたバイト数が含まれます、そしてデータはもちろん、アレイdata
になります:あなただけのソケットからバイトの配列を読みたい場合は、これを行います。
ソケットから直接読み取ってByteArrayInputStream
のインスタンスを取得することはできません。
最初に読み込み、バイト内容を見つける必要があります。
それを使用してByteArrayInputStream
のインスタンスを作成します。あなたが手に持っていたBAOを通り
InputStream inputStream = socket.getInputStream();
// read from the stream
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] content = new byte[ 2048 ];
int bytesRead = -1;
while((bytesRead = inputStream.read(content)) != -1) {
baos.write(content, 0, bytesRead);
} // while
さて、私はあなたがまだbais
インスタンスが必要とは思いません。
はしかし、
あなたは
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
*以下のようにバイト配列入力ストリームを生成することができ、それは完全なものにする「が、エラーを得た:」*ガット何のエラーを!常に例外とエラー出力をコピーして(コードタグを使用して)質問に貼り付けます。 –
あなたの質問は理にかなっていません。 ByteArrayInputStreamは、バイト配列からバイトを読み込みます。ソケットから読み取る場合は、バイト配列から読み取ることはできません。ここで解決しようとしている問題は何ですか? – EJP