개발 지식

Json을 읽어올 때 BufferedReader.readLine() 사용을 조심해야하는 이유

dm.kim 2020. 11. 23. 10:37

서버로부터 Json을 읽어올 때 BufferedReader의 readLine()을 사용하였다.

콘솔에 잘 가져오나 찍어보아도 Json 데이터 모두를 가져오기에 이상이 없는 줄 알았다.

하지만 팀장님이 말씀하시길 이 메소드를 사용하면 문제가 발생할 수도 있다고 하였다.

한 줄로 서버가 Json을 전송하였기에 readLine()을 사용할 경우 한 줄을 읽을 때 끝까지 읽을 수 있는 것이지

이렇게 줄을 분리하여 Json 데이터를 보낼 경우 readLine()을 사용하면 첫 줄 데이터("{")만 읽게 되는 문제가 발생한다.

 

따라서 사전에 이러한 문제를 방지하기 위해서는 다른 방법을 사용할 필요가 있다.

위의 예시와 같이 만들어 주어 한 줄씩(readLine이기에 다음 번에 호출 시 마지막 호출 된 다음 줄 부터 읽는다. 그렇기에 while문 조건에 대입문을 해야한다.) 읽어 StringBuilder에 붙여주면 된다.

 

참조 : https://ahndding.tistory.com/5

 

[BufferedReader] BufferedReader.readLine()로 Json 데이터를 읽어올 때 주의할 점

팀원이 작성한 코드 중 문제가 있다는 팀장님의 말씀. 옆으로 쫄래쫄래 다가가 같이 코드를 보아도 여전히 문제를 모르겠다. 결과는 이렇다. Token을 발급해주는 서버로부터 받는 포맷은 다음과

ahndding.tistory.com