• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

아래 소스의 차이가 뭘까요?

23.06.10 18:10 작성 조회수 167

0

            StringBuffer stringBuffer = new StringBuffer();
            String readLine;
            while ((readLine = bufferedReader.readLine()) != null) {
                stringBuffer.append(readLine);
            }
            bufferedReader.close();
            StringBuffer stringBuffer = new StringBuffer();
            String readLine;
            while (bufferedReader.readLine() != null) {
                readLine = bufferedReader.readLine();
                stringBuffer.append(readLine);
            }
            bufferedReader.close();

첫번째 소스와 두번째 소스의 차이점이 어떤걸까요?
둘 다 bufferedReader.readLine() != null 일 경우에 readLine에 값을 대입하는 식인데
첫번째로하면 오류가 안나는데 두 번째로 하면 오류가 나네요..

위 두 소스의 차이점을 알고 싶습니다.

 

 

 

 

답변 1

답변을 작성해보세요.

0

StringBuffer stringBuffer = new StringBuffer();

String readLine;

while (bufferedReader.readLine() != null) {

readLine = bufferedReader.readLine(); stringBuffer.append(readLine);

}

bufferedReader.close();

위소스는 readLine()을 두번하기 때문에 에러가 발생한겁니다. while안에서 readLine()을 한번해버리면 스트림의 값을 읽어 버리고 다시 아래어서 또 readLine()을 하면 데이터가 없겠죠? 그래서 에러가 날것입니다.