본문 바로가기
IT/java

Java I/O: 입출력 작업을 위한 자바의 기본

by 뉴코딩맨 2023. 6. 10.
자바에서 I/O(Input/Output) 작업은 데이터를 읽고 쓰는 작업을 의미합니다. 자바의 I/O에 대해 자세히 알아보고 예시를 통해 설명하겠습니다.

 

 

바이트 기반 입출력 스트림

바이트 기반 입출력 스트림은 데이터를 바이트 단위로 처리하는 스트림입니다. 자바에서 InputStream과 OutputStream 클래스는 바이트 기반 입출력 스트림을 다루기 위해 사용됩니다.
 
try (InputStream inputStream = new FileInputStream("input.txt");
    OutputStream outputStream = new FileOutputStream("output.txt")) {
    int data;
    while ((data = inputStream.read()) != -1) {
    outputStream.write(data);
	}
} catch (IOException e) {
	e.printStackTrace();
}
 
위의 예시에서는 input.txt 파일에서 데이터를 읽어와 output.txt 파일에 데이터를 씁니다. InputStream의 read() 메서드로 데이터를 읽어오고, OutputStream의 write() 메서드로 데이터를 씁니다. 예외 처리를 통해 입출력 도중 발생하는 예외를 처리할 수 있습니다.

 

 

문자 기반 입출력 스트림

문자 기반 입출력 스트림은 데이터를 문자 단위로 처리하는 스트림입니다. 자바에서 Reader와 Writer 클래스는 문자 기반 입출력 스트림을 다루기 위해 사용됩니다.
 
try (Reader reader = new FileReader("input.txt");
    Writer writer = new FileWriter("output.txt")) {
    int data;
    while ((data = reader.read()) != -1) {
    writer.write(data);
    }
} catch (IOException e) {
	e.printStackTrace();
}
 
위의 예시에서는 input.txt 파일에서 데이터를 읽어와 output.txt 파일에 데이터를 씁니다. Reader의 read() 메서드로 문자 데이터를 읽어오고, Writer의 write() 메서드로 문자 데이터를 씁니다. 예외 처리를 통해 입출력 도중 발생하는 예외를 처리할 수 있습니다.

 

 

버퍼링 기능

자바는 입출력 성능을 향상시키기 위해 버퍼링 기능을 제공합니다. BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter 등의 클래스를 사용하여 데이터를 버퍼에 저장하고 일괄적으로 입출력할 수 있습니다.
 
try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
        BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
        String line;
        while ((line = reader.readLine()) != null) {
        writer.write(line);
        writer.newLine();
    }
} catch (IOException e) {
	e.printStackTrace();
}
 
위의 예시에서는 BufferedReader와 BufferedWriter를 사용하여 텍스트 파일의 데이터를 한 줄씩 읽어와 쓰고 있습니다. readLine() 메서드를 통해 한 줄씩 읽어오고, write() 메서드와 newLine() 메서드를 통해 한 줄씩 쓰고 있습니다.

 

 

마무리

자바의 I/O에 대해 알아보았습니다. 바이트 기반 입출력 스트림과 문자 기반 입출력 스트림을 활용하여 데이터를 읽고 쓰는 방법을 살펴보았습니다. 또한 버퍼링 기능을 통해 입출력 성능을 향상시킬 수 있는 방법도 알아보았습니다. 입출력은 자바 프로그래밍에서 매우 중요한 요소이므로, 다양한 입출력 작업에 대해 더욱 학습하고 활용해보시기 바랍니다.
 

댓글