Java I/O

자바 I/O (Java I/O)

파일 읽기/쓰기 (File Reading/Writing)

파일 읽기와 쓰기는 자바에서 중요한 작업 중 하나입니다. 이를 위해 주로 사용되는 클래스들은 FileInputStream, FileOutputStream, FileReader, FileWriter 등이 있습니다.

바이트 스트림과 문자 스트림 (Byte Streams and Character Streams)

Java I/O는 크게 두 가지 스트림 유형으로 나눌 수 있습니다: 바이트 스트림과 문자 스트림입니다. 각각은 다음과 같은 특성을 가지고 있습니다:

  1. 바이트 스트림 (Byte Streams): 데이터를 바이트(byte) 단위로 처리합니다. 모든 종류의 데이터, 예를 들어 이미지, 오디오 파일 등도 바이트 스트림으로 처리될 수 있습니다.
  • FileInputStream: 파일로부터 바이트 단위로 데이터를 읽습니다.
  • FileOutputStream: 파일에 바이트 단위로 데이터를 씁니다. 바이트 스트림 예제:
   import java.io.*;

   public class ByteStreamExample {
       public static void main(String[] args) {
           try {
               // 파일에 데이터 쓰기
               FileOutputStream fos = new FileOutputStream("output.txt");
               String message = "Hello, Byte Streams!";
               byte[] bytes = message.getBytes();
               fos.write(bytes);
               fos.close();

               // 파일에서 데이터 읽기
               FileInputStream fis = new FileInputStream("output.txt");
               int data;
               while ((data = fis.read()) != -1) {
                   System.out.print((char) data);
               }
               fis.close();
           } catch (IOException e) {
               e.printStackTrace();
           }
       }
   }

위의 예제에서는 FileOutputStream을 사용하여 파일에 문자열 데이터를 바이트로 씁니다. 그리고 FileInputStream을 사용하여 파일에서 바이트를 읽고 문자로 변환하여 출력합니다.

  1. 문자 스트림 (Character Streams): 데이터를 문자(character) 단위로 처리합니다. 문자 스트림은 인코딩 방식에 맞게 문자를 처리하므로 텍스트 데이터를 읽고 쓰는 데 유리합니다.
  • FileReader: 파일로부터 문자 단위로 데이터를 읽습니다.
  • FileWriter: 파일에 문자 단위로 데이터를 씁니다. 문자 스트림 예제:
   import java.io.*;

   public class CharacterStreamExample {
       public static void main(String[] args) {
           try {
               // 파일에 데이터 쓰기
               FileWriter fw = new FileWriter("output.txt");
               String message = "Hello, Character Streams!";
               fw.write(message);
               fw.close();

               // 파일에서 데이터 읽기
               FileReader fr = new FileReader("output.txt");
               int data;
               while ((data = fr.read()) != -1) {
                   System.out.print((char) data);
               }
               fr.close();
           } catch (IOException e) {
               e.printStackTrace();
           }
       }
   }

위의 예제에서는 FileWriter를 사용하여 파일에 문자열 데이터를 씁니다. 그리고 FileReader를 사용하여 파일에서 문자를 읽어와 출력합니다.

자바 I/O는 다양한 클래스와 메서드를 제공하여 파일 및 데이터 스트림을 처리할 수 있습니다. 바이트 스트림은 모든 종류의 데이터를 처리할 수 있고, 문자 스트림은 텍스트 데이터를 보다 효율적으로 처리할 수 있습니다. 파일 읽기 및 쓰기 작업은 자바 어플리케이션 개발에서 빈번하게 사용되므로, 이를 잘 이해하고 활용할 수 있어야 합니다.

Leave a Reply

Your email address will not be published. Required fields are marked *