BufferedWriter는 write한 내용이 실제로 출력 스트림으로 넘어가는 시점을 '모른다'고 봐야 합니다.
즉, println을 먼저 하고 그 뒤에 BufferedWriter에 쓰기 시작했으면 순서가 보장이 되지만, BufferedWriter에 write를 먼저 했으면 그 내용이 실제로 System.out에 전달되는 시점이 언제일지 알 수 없기 때문에 그 내용이 먼저 출력될 수도 있고, 나중에 flush할 때 출력될 수도 있고, 아니면 일부만 출력한 뒤 println의 내용이 출력되고 그 뒤에 flush 시에 나머지 내용이 출력될 수도 있습니다.
tank3a 2년 전
아래 9 ,10번 줄을 다음과 같이 작성하면 맞다고 채점이되고, 순서를 바꾸면 틀렸다고 채점이 되는데요..
bufferedwriter가 outputstreamwriter에 버퍼 단위만큼 끊어서 작성한다는 것은 이해를 했는데, 이 과정이 println과 섞이면 안된다는 답변만 있고, 이유를 모르겠어서 질문드립니다.
bufferedwriter가 write되면, 버퍼에 저장이 되있는데, 이때 println을 호출하면 buffer에 있는 내용이 출력이 되버리는건가요? println안에 내용이 이미 있는데 버퍼와 연관이 있나요?? 왜 두 줄의 순서만 바꿨다고 틀리게 되는지 이해가되지 않습니다ㅠㅠ