これは非常に簡単で、私はGoogleを検索しましたが、私が気付いた問題について言及した人はいませんでした。私が見たものはすべて同じ基本的なことをしています。私はEOFに達したときに-1を返しますが、どのようなファイルがバッファあるいは同じサイズよりも小さい場合)(読み知ってInputStreamからの読み込みとOutputStreamへの書き込み
byte [] buffer = new byte[256];
int bytesRead = 0;
while((bytesRead = input.read(buffer)) != -1)
{
output.write(buffer, 0, bytesRead);
}
:このような? Foxの例では、200バイトのファイルが読み込まれています。私はそれが200バイトを読み込むと仮定しますが、-1を返します。これはjavadocsと一致しますが、write()が呼び出されないことも意味します。私は実際にそれが200バイトを読み、次の反復で-1を返すと私に伝えると思っていたでしょう。
この「問題」を回避するにはどうすればよいですか?
'input'がどのように生成され、' read() 'を呼び出す前にどうなるかを示します。 – erickson
この質問は「不完全」です。 – erickson
[OutputStreamにJava InputStreamの内容を簡単に書き込む方法]の複製が可能です(http://stackoverflow.com/questions/43157/easy-way-to-write-contents-of-a-java-inputstream-to - 流出ストリーム) – rds