이것은 매우 간단해야하며 Google을 검색했지만 주목 한 문제를 언급 한 사람이 없습니다. 내가 본 모든 것은 똑같은 일을합니다. 내가 EOF에 도달하면 -1 반환하지만 파일이 버퍼 또는 같은 크기보다 작은 경우) (읽기 알고InputStream에서 읽고 OutputStream에 쓰기
byte [] buffer = new byte[256];
int bytesRead = 0;
while((bytesRead = input.read(buffer)) != -1)
{
output.write(buffer, 0, bytesRead);
}
:이처럼? 폭스 예를 들어, 200 바이트 파일을 읽고있다. 나는 그것을 200 바이트 읽은 것으로 가정하지만 -1 반환합니다. 이는 javadocs와 일치하지만 write()가 호출되지 않는다는 것을 의미합니다. 실제로 200 바이트를 읽고 나면 다음 반복에서 -1을 반환한다고 말할 것입니다.
어떻게이 "문제"를 해결할 수 있습니까?
'input'이 어떻게 생성되고'read()'를 호출하기 전에 어떻게되는지 보여줍니다. – erickson
약자로,이 질문은 "불완전합니다." – erickson
가능한 복제본 [Java InputStream의 내용을 OutputStream에 쓰는 쉬운 방법] (http://stackoverflow.com/questions/43157/easy-way-to-write-contents-of-a-java-inputstream-to) - 출력 스트림) – rds