BufferedReader # readLine()은 버퍼를 8192 바이트로 채 웁니다. 행 자체의 크기가 그보다 훨씬 큰 경우 예외가 발생하거나 청크로 읽고 전체 행을 인쇄합니까?java readLine()은 1GB 라인을 읽을 수 있습니다
3
A
답변
6
BufferedReader.readLine()
은 1GB 일 수있는 String
을 반환하도록 선언되었습니다. A String
은 내부 표현이 char[]
이고 Java에서 배열의 길이는 10^9보다 훨씬 클 수 있습니다 (배열의 최대 크기는 Integer.MAX_VALUE
보다 약간 큽니다). 또한 방해하지 않도록
BufferedReader.readLine()
의 구현은 라인 1GB 이상 길게하는 것이 또한 char
배열에 String
을 빌드 StringBuffer
를 이용한다.
BufferedReader
의 내부 버퍼는 최대 작업을 제한하지 않으며 특정 작업의 속도를 높이고 Reader.mark()
및 Reader.reset()
작업을 지원하기 위해 사용됩니다.
참고 :
그것은 배열 제한 문자 수에 적용되도록 String
저장 문자 바이트, 사용되는 문자 인코딩에 따라 바이트의 수보다 훨씬 더 할 수없는 것을 당신의 호의에 실제 텍스트 내용 (예 : UTF-8 인코딩이 사용되는 경우 문자는 4 바이트 데이터로 인코딩 될 수도 있음).
1 GB 라인? 그것은 초장형, 축소 형 CSS 파일과 같은 것입니까, 아니면 무엇입니까? – jyoon
왜 시도하고 디버깅하지 않습니까? –
'BufferedReader'를 적절한 크기 인 – bachr