Java 스트림에서 flush()의 목적은 무엇입니까?
자바에서는flush()
method는 스트림에서 사용됩니다.그런데 왜 이런 방법을 사용하는지 이해가 안 돼요?
fin.flush();
몇 가지 제안을 해 주세요.
의 문서에서flush
방법:
출력 스트림을 플러시하고 버퍼링된 출력 바이트를 강제로 씁니다.flush의 일반적인 계약에서는, 이전에 쓴 바이트가 출력 스트림의 실장에 의해서 버퍼링 된 경우는, 그 바이트를 곧바로 목적의 수신처에 쓸 필요가 있는 것을 나타냅니다.
버퍼링은 주로 I/O 성능을 향상시키기 위해 수행됩니다.상세한 것에 대하여는, 다음의 기사를 참조해 주세요.Java I/O 퍼포먼스 조정
스트림에 데이터를 쓸 때 스트림은 즉시 기록되지 않고 버퍼링됩니다.사용방법flush()
버퍼의 모든 데이터가 기록되었는지 확인해야 할 때 사용합니다.
스트림을 닫기 전에 모든 쓰기가 완료되었는지 확인해야 합니다.flush()
파일/삭제된 라이터로 호출됩니다.close()
.
스트림을 닫기 전에 언제든지 모든 쓰기를 저장해야 하는 경우flush()
.
명령어를 실행하면 해당 명령어의 스트림이 컴퓨터 내의 버퍼라고 불리는 메모리 위치(일시 메모리 위치)에 저장됩니다.모든 임시 메모리 위치가 꽉 차면 flash()를 사용합니다.이것에 의해 모든 데이터 스트림이 플래시 되어 완전히 실행되어 버퍼 임시 위치에 있는 새로운 스트림에 새로운 공간이 주어집니다.-이해해해 주셨으면 합니다.
버퍼가 가득 차면 버퍼에 버퍼된 모든 문자열이 디스크에 저장됩니다.버퍼는 Big Deals! 및 오버헤드를 회피하기 위해 사용됩니다.
Java libs에 배치되는 BufferedWriter 클래스에는 다음과 같은 한 줄이 있습니다.
private static int defaultCharBufferSize = 8192;
버퍼가 가득 차기 전에 데이터를 전송하려면 제어할 수 있습니다.플래시만 하면 됩니다.라이터에게 전화한다.flash()는 "버퍼에 있는 모든 것을 보내라, 당장!
참고서: https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208
페이지: 453
스트림은 콘텐츠를 주기적으로 비워 화면에 표시하거나 소켓에 보내거나 파일에 쓰는 스레드에 의해 자주 액세스됩니다.이것은 퍼포먼스상의 이유로 행해집니다.출력 스트림을 플러시하는 것은 중지하고 스트림의 내용이 수신처로 완전히 전송될 때까지 기다린 후 스트림이 비어 있고 내용이 전송된 상태에서 실행을 재개하는 것을 의미합니다.
성능 문제는 첫 번째 데이터를 버퍼에 씁니다.버퍼가 가득 차면 데이터가 출력에 기록됩니다(파일, 콘솔 등).버퍼가 부분적으로 채워져 출력(file, console)에 송신할 경우 출력(file, console)에 부분적으로 채워진 버퍼를 쓰기 위해 flash() 메서드를 수동으로 호출해야 합니다.
여기에 있는 다른 좋은 답변과 더불어, 이 설명은 나에게 매우 명확했다.
버퍼는 메모리에서 데이터 스트림(문자)을 저장하기 위해 사용되는 부분입니다.이러한 문자는 버퍼가 가득 찼을 때 또는 특정 문자 수를 충족했을 때 출력 장치(모니터 등)에만 송신되는 경우가 있습니다.출력 디바이스에 송신할 문자가 몇 개만 있으면 시스템이 지연될 수 있습니다.flush() 메서드는 버퍼의 내용을 출력 스트림에 즉시 플러시합니다.
출처 : https://www.youtube.com/watch?v=MjK3dZTc0Lg
언급URL : https://stackoverflow.com/questions/2340106/what-is-the-purpose-of-flush-in-java-streams
'programing' 카테고리의 다른 글
file_get_contents를 사용하여 PHP에 데이터를 게시하려면 어떻게 해야 합니까? (0) | 2022.09.22 |
---|---|
이삭이 나기 전에 Accessing Laravel .env 변수다. (0) | 2022.09.22 |
Python에서 람다로 정렬하는 방법 (0) | 2022.09.22 |
HashSet.removeAll 메서드가 놀라울 정도로 느리다. (0) | 2022.09.22 |
ISO 8601 형식의 날짜를 해석하려면 어떻게 해야 합니까? (0) | 2022.09.22 |