bufferedreader 예제
일반적으로 Reader로 만든 각 읽기 요청은 기본 문자 또는 바이트 스트림으로 해당 읽기 요청을 만들 수 있습니다. 따라서 FileReader 및 InputStreamReaders와 같이 읽기() 작업이 비용이 많이 들 수 있는 모든 리더를 중심으로 BufferedReader를 래핑하는 것이 좋습니다. 예를 들어 두 가지 이유로 버퍼리더를 FileReader 주위에 래핑합니다. 첫째, BufferedReader는 이름에서 의미하는 바를 수행하여 입력을 버퍼링하여 읽기 프로세스를 훨씬 더 빠르게 만듭니다. 둘째, BufferedReader는 입력의 각 줄을 Java 문자열로 변환하고 이전 예제에서 보았듯이 파일 읽기 프로세스를 크게 단순화하는 readLine 메서드를 제공합니다. 이 예제를 떠나기 전에 위의 설명서에 포함 된 줄을 다시 말해야합니다 : 위의 예에서는 일반적으로 키보드의 입력에 해당하는 System.in 읽습니다. 마찬가지로 소켓, 파일 또는 상상할 수 있는 유형의 텍스트 입력에서 읽기 위한 입력 스트림을 전달할 수 있습니다. 유일한 전제 조건은 적절한 InputStream 구현이 있다는 것입니다. 이러한 동작 때문에 위의 예와 같이 BufferedReader를 통해 반복하는 while 루프를 작성하는 것이 매우 일반적이며, 여기에 다시 : 그것은 또한 InputStreamReader와 자바 버퍼 리더를 사용하는 것이 일반적입니다. 우리는 위의 BufferedReader 자바 독 문에서 언급 된이 것을 보았고, 이제 System.in 읽을 수 있도록 InputStreamReader 주위에 버퍼리더를 래핑하는 예제를 공유 할 것입니다. 위의 예에서는 mark() 메서드를 사용하여 방금 읽은 위치를 표시합니다. 값을 1로 부여하면 코드만 한 문자 앞으로 의 표시를 기억합니다.
첫 번째 공백이 아닌 문자를 보고 나면 전체 스트림을 다시 처리할 필요 없이 해당 문자를 다시 읽을 수 있기 때문에 편리합니다. 마크없이, 우리는 우리의 마지막 문자열에서 L을 잃게됩니다. Reader 개체를 메서드 인수로 사용하는 생성자 중 하나를 호출하여 BufferedReader 개체 br을 초기화한 것으로 나타났습니다. 독자 클래스만으로는 충분하지 않으므로 입력StreamReader를 읽으려면 하위 클래스 중 하나를 가져가야 합니다. 이 BufferedReader 예제에서는 키보드 입력 또는 호스트 환경 또는 사용자가 지정한 다른 입력 소스에 해당하는 System.in 사용했습니다. 위의 예제에서는 두 개의 밑줄로 구분된 숫자가 포함된 입력 문자열을 읽습니다. 숫자만 포함하는 문자열을 생성하기 위해 skip 메서드를 호출하여 밑줄을 건너뜁니다. 이 예제에서는 BufferedReader를 사용하는 보다 복잡한 예제를 다루게 됩니다. 이전 예제에서는 InputStreamReader를 생성자 인수로 사용했습니다. 이 예제에서는 FileReader를 사용합니다. 의도는 파일의 내용을 읽고 콘솔에 출력하는 것입니다. 나는 파일을 읽기 위해 스캐너를 사용하는 것을 선호하지만, BufferedReader를 사용하여 몇 가지 장점이 있었다.