2017-02-10 15 views
-1

私はTCPサーバープロジェクトで作業しています。DataOutputStreamとDataInputStreamを使用してバイト[]経由でファイルを転送する必要があります。バイト配列を問題なく出力ストリームに書き込むことができましたが、私はDataInputStreamのドキュメントを見ていましたが、それは私が望むと思われるメソッド(byte [] b)です。問題は、これは私がバイト[]を事前に作成する必要があるということですが、私はこれを行う方法について何か助けが必要なので、サイズがどれくらい必要かを必ずしも分かりません。JavaのDataInputStreamから可変サイズのbyte []を読み取る方法は?

+0

あなたは気にしません。 8192のバイト配列か好きなものを使って、標準のコピーループを使うだけです。 – EJP

+1

最初にサイズを送信してから受信機でサイズを読み、配列を作成してください –

+0

あなたのコードはどこにありますか? – nackolysis

答えて

0

Apache Commons IO libraryをご覧ください。これには、入力ストリーム全体をバイト配列に読み込むことができるIOUtilsというユーティリティクラスがあります。これは、事前にバイト[]を宣言する必要はありません。 詳細はこちらthis

-1

私はTCPサーバーとクライアント用のライブラリを作成しました。あなたもそれを使うかもしれません。 GitHub

それほどですが簡単です。

0

あなたはしていません。必要なのは標準のJavaコピーループだけです:

byte[] buffer = new byte[8192]; // or wherever you like > 0 
int count; 
while ((count = in.read(buffer)) > 0) 
{ 
    out.write(buffer, 0, count); 
} 
関連する問題