java.io.FileInputStream에서 사용하는 Buffer의 역할
조회수 859회
int bytesAvailable;
FileInputStream fileInputStream = new FileInputStream(new File("somewhere"));
bytesAvailable = fileInputStream.available();
int maxBufferSize = 100;
int bufferSize = Math.min(bytesAvailable, maxBufferSize);
byte[] buffer = new byte[bufferSize];
// read file and write it into form...
int bytesRead = fileInputStream.read(buffer, 0, bufferSize);
HttpURLConnection
을 공부하다가 이런 부분이 있는데, 검색을 해봐도 확실한 답이 나오지 않아 질문합니다!
여기서 byteAvailable
이 뜻하는 것과 FileInputStream
에서의 buffer
의 역할이 궁금합니다!!
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
스트림 클래스에서 보통 available 메서드는 읽을 수 있는 데이터의 개수를 의미하고 buffer 는 데이터가 담기는 변수를 의미합니다.
// 스트림에서 읽을 수 있는 데이터의 개수를 확인합니다. bytesAvailable = fileInputStream.available(); // 스트림에서 읽을 수 있는 데이터 개수와 // 내가 설정해둔 최대로 읽을 수 있는 개수를 비교해 // 둘 중 작은 개수를 버퍼사이즈로 정합니다. bufferSize = Math.min(bytesAvailable, maxBufferSize); // 데이터를 담을 배열 변수 설정 buffer = new byte[bufferSize]; // bytesRead : 얼만큼 읽었나 결과를 받습니다. // read() : buffer 배열의 0번째 index 부터 bufferSize 만큼의 // 데이터를 buffer 배열에 담습니다. bytesRead = fileInputStream.read(buffer, 0, bufferSize);
댓글 입력