수색…


소개

독자와 작성자 및 해당 하위 클래스는 텍스트 / 문자 기반 데이터에 대한 간단한 I / O를 제공합니다.

BufferedReader

소개

BufferedReader 클래스는 두 가지 주요 용도로 사용되는 다른 Reader 클래스의 래퍼입니다.

  1. BufferedReader 는 랩 된 Reader 대해 버퍼링을 제공합니다. 이를 통해 응용 프로그램은 과도한 I / O 오버 헤드없이 한 번에 하나씩 문자를 읽을 수 있습니다.

  2. BufferedReader 는 한 번에 한 줄씩 텍스트를 읽는 기능을 제공합니다.

BufferedReader 사용의 기본 사항

BufferedReader 를 사용하는 일반적인 패턴은 다음과 같습니다. 먼저, 문자를 읽으려는 Reader 를 얻습니다. 다음으로 Reader 를 감싸는 BufferedReader 를 인스턴스화합니다. 그런 다음 문자 데이터를 읽습니다. 마지막으로 랩핑 된`Reader를 닫는 BufferedReader 를 닫는다. 예 :

File someFile = new File(...);
int aCount = 0;
try (FileReader fr = new FileReader(someFile);
     BufferedReader br = new BufferedReader(fr)) {
    // Count the number of 'a' characters.
    int ch;
    while ((ch = br.read()) != -1) {
        if (ch == 'a') {
            aCount++;
        }
    }
    System.out.println("There are " + aCount + " 'a' characters in " + someFile);
}

이 패턴을 모든 Reader 적용 할 수 있습니다.

노트:

  1. 우리는 Java 7 (또는 그 이상)의 try-with-resources 를 사용하여 기본 독자가 항상 닫혀 있는지 확인했습니다. 이렇게하면 잠재적 인 리소스 유출을 피할 수 있습니다. 이전 버전의 Java에서는 finally 블록에서 BufferedReader 를 명시 적으로 닫습니다.

  2. try 블록 안의 코드는 FileReader 에서 직접 읽는 경우에 사용할 코드와 거의 동일합니다. 실제로, BufferedReader 는 랩하는 Reader 와 완전히 같은 기능을합니다. 차이점은 버전이 훨씬 더 효율적이라는 것입니다.

BufferedReader 버퍼 크기

BufferedReader.readLine () 메서드

예 : 파일의 모든 행을 목록으로 읽음

이 작업은 파일의 각 행을 가져 와서 List<String> 추가하여 수행됩니다. 그런 다음 목록이 반환됩니다.

public List<String> getAllLines(String filename) throws IOException {
    List<String> lines = new ArrayList<String>();
    try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
        String line = null;
        while ((line = reader.readLine) != null) {
            lines.add(line);
        }
    }
    return lines;
}

Java 8은 lines() 메소드를 사용하여보다 간결한 방법을 제공합니다.

public List<String> getAllLines(String filename) throws IOException {
    try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
        return br.lines().collect(Collectors.toList());
    }
    return Collections.empty();
}

StringWriter 예제

Java StringWriter 클래스는 문자열을 생성하는 데 사용할 수있는 문자열 버퍼의 출력을 수집하는 문자 스트림입니다.

StringWriter 클래스는 Writer 클래스를 확장합니다.

StringWriter 클래스에서는 네트워크 소켓 및 파일과 같은 시스템 리소스가 사용되지 않으므로 StringWriter를 닫을 필요가 없습니다.

import java.io.*;  
public class StringWriterDemo {  
    public static void main(String[] args) throws IOException {  
        char[] ary = new char[1024];  
        StringWriter writer = new StringWriter();  
        FileInputStream input = null;  
        BufferedReader buffer = null;  
        input = new FileInputStream("c://stringwriter.txt");  
        buffer = new BufferedReader(new InputStreamReader(input, "UTF-8"));  
        int x;  
        while ((x = buffer.read(ary)) != -1) {  
                   writer.write(ary, 0, x);  
        }  
        System.out.println(writer.toString());        
        writer.close();  
        buffer.close();  
    }  
}

위의 예는 BufferedReader를 사용하여 스트림에서 파일 데이터를 읽는 간단한 예제 인 StringWriter를 알 수 있도록 도와줍니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow