java
에서 서버 프로그램에서 읽는 동안 나는 모호한 출력을 얻고있다
을 읽는 동안 감지 :-1 파일 자바
byte [] mybytearray = new byte [content_length];
InputStream inputStream = clientSocket0.getInputStream(); //Getting input
from peer0
FileOutputStream fileOutputStream = new FileOutputStream(fileDownloaded);
//Sending the output to local directory
BufferedOutputStream bufferedOutputStream = new
BufferedOutputStream(fileOutputStream);
bytesRead = inputStream.read(mybytearray,0,content_length);
System.out.println("First read : " +bytesRead);
current = bytesRead;
if(bytesRead!=content_length) {
current = bytesRead;
do {
System.out.println(current +"-Current");
System.out.println("Read it : "+(mybytearray.length-current));
bytesRead =
inputStream.read(mybytearray, current, (mybytearray.length-current));
System.out.println("***"+bytesRead);
if(bytesRead == -1) {
//current = content_length;
break;
}
else
current += bytesRead;
} while(current < content_length);
}
bufferedOutputStream.write(mybytearray, 0 , current);
bufferedOutputStream.flush();
bufferedOutputStream.close();
inputStream.close();
inFromServer0.close();
그것은 일부 파일에 대한 다음과 같은 출력을주고있다 :
내용 길이 33996을
C : \ 사용자 \ 수밋 \ 자식 \ IP_Task2 작업 1 \ Peer1/rfc8183.txt.pdf \
먼저 읽기 : 24,356
24356 - 현재
읽기 그것은 : 9640
*** - 1
루프의 bytesRead은 -1하여 올바른 파일을 만들 수 없습니다.
코드를 올바르게 포맷하십시오. 최신 버전의 자바를 사용한다면 수동으로'InputStream.close()'를 호출하는 대신 try-with-resources를 사용하십시오. – omajid