본문 바로가기
Programming/Java

자바의 입출력

by vita12321 2023. 8. 2.
728x90
반응형

자바의 입출력(Input/Output) 데이터를 주고받기 위한 기능입니다. 자바에서 I/O 작업을 스트림(Stream) 사용해 처리하며, 여기서 스트림은 데이터의 일관된 흐름을 의미합니다. 글에서는 자바의 입출력에 대해 자세히 살펴보고, 예제 코드를 통해 기능을 이해해 보겠습니다.


 

1. 자바 I/O 스트림의 개념 종류

 

자바에서는 스트림을 이용해 메모리와 파일 등의 장치 사이에 데이터를 주고받습니다. 자바의 스트림에는 크게 가지로 구분할 있습니다.

 

  • 입력 스트림 (InputStream)
    기본 입력 장치에서 incoming 데이터를 읽기 위한 스트림입니다.

  • 출력 스트림 (OutputStream)
    기본 출력 장치로 데이터를 작성하기 위한 스트림입니다.

  • 문자 스트림 (Reader, Writer)
    텍스트 파일로 작업할 때 주로 사용되는 문자 기반 스트림입니다.

 

2. 자바 I/O 스트림 구현 사용

 

자바 I/O 스트림을 구현하고 사용하기 위해서는 다음과 같은 과정들을 거칩니다.

 

스트림 생성

스트림을 이용하여 데이터 읽기 쓰기

스트림 닫기

 

예제로 설명하면 아래와 같습니다.

 

// 파일 입력 예제

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

 

public class Main {

 

    public static void main(String[] args) {

       

        try {

            FileInputStream fis = new FileInputStream("input.txt");

            int i;

            while ((i = fis.read()) != -1) {

                System.out.print((char) i);

            }

            fis.close();

 

        } catch (FileNotFoundException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}
// 파일 출력 예제

import java.io.FileOutputStream;

import java.io.IOException;

 

public class Main {

 

    public static void main(String[] args) {

       

        try {

            FileOutputStream fos = new FileOutputStream("output.txt");

            String data = "Hello, Java I/O!";

            byte[] bytes = data.getBytes();

 

            fos.write(bytes);

            fos.close();

 

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

 

예제에서는 'input.txt' 파일을 읽고 데이터를 출력하는 예제와 'output.txt' 파일에 문자열을 작성하는 예제를 보여줍니다.


 

3. 자바 I/O 스트림 예제

 

텍스트 파일에서 문자를 읽어 대문자로 변환한 다음 다른 파일에 쓰는 예제를 구현해보겠습니다.

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

 

public class Main {

 

    public static void main(String[] args) {

 

        try {

            FileReader fr = new FileReader("input.txt");

            FileWriter fw = new FileWriter("output.txt");

 

            int i;

            while ((i = fr.read()) != -1) {

                fw.write(Character.toUpperCase((char) i));

            }

 

            fr.close();

            fw.close();

 

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

 

 

자바 I/O 스트림을 통해 데이터를 효과적으로 주고받으며, 애플리케이션의 작업을 수행할 있습니다. 다양한 스트림을 사용하여 입출력 작업을 적절하게 선택할 있어야 합니다.

728x90
반응형

'Programming > Java' 카테고리의 다른 글

자바의 컬렉션 프레임워크  (0) 2023.08.04
자바의 예외 처리  (0) 2023.08.03
자바의 내부 클래스  (0) 2023.08.01
자바의 인터페이스  (0) 2023.07.31
자바의 추상 클래스  (0) 2023.07.30