인프런 커뮤니티 질문&답변

홍태경님의 프로필 이미지
홍태경

작성한 질문수

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

파일 입출력과 성능 최적화2 - 버퍼 활용

ReadFileV2 클래스 실행시 무한 루프 현상

작성

·

114

·

수정됨

1

public static void main(String[] args) throws IOException {

    FileInputStream fis = new FileInputStream(FILE_NAME);
    long startTime = System.currentTimeMillis();

    byte[] buffer = new byte[BUFFER_SIZE];
    int fileSize = 0;
    int size;
    while ((size = fis.read(buffer)) != 1) {
        fileSize += size;
    }
    fis.close();

    long endTime = System.currentTimeMillis();
        System.out.println("File name: " + FILE_NAME);
        System.out.println("File size: " + fileSize / 1024 / 1024 + "MB");
        System.out.println("Time token: " + (endTime - startTime) + "ms");
    }
}

 

CreateFIleV1, 2, readFileV1 까지는 결과가 나오는데

readFileV2는 결과가 나오지 않습니다 인텔리J에서 뭐 설정 해야 할게 있을까요?

 

추가로 BUFFER_SIZE를 8192 -> 100으로 줄여봐도 결과는 결과가 나오지 않네요..ㅠ

public static final int BUFFER_SIZE = 100;


buffered.dat 파일에 에디터에서 설정 해라 라는거 같은데

인텔리제이 초기설정이 따로 있을까요..?

  • This document contains very long lines Soft wraps were enabled to improve editor performance.

  • This file explicitly re-assigned ot plain text

답변 1

2

while문 조건식이 잘못되어 있네요.

(size = fis.read(buffer) != -1 로 해보세요.

홍태경님의 프로필 이미지
홍태경
질문자

감사합니다..ㅠ

홍태경님의 프로필 이미지
홍태경

작성한 질문수

질문하기