개발일지/Java

Java InputStream, OutputStream

E-room 2022. 9. 24. 13:16
728x90

바이트 기반 스트림 ( 입출력 단위가 1byte)

 

FileOutputStream

파일 생성

import java.io.FileOutputStream;

public class Main {
    public static void main(String[] args) {
        try {
            FileOutputStream fileOutput = new FileOutputStream("eroom.txt");
            String word = "E-room";

            byte b[] = word.getBytes();
            fileOutput.write(b);
            fileOutput.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

FileInputStream

파일을 읽어올 때 사용

 

FileOutputStream을 이용하여 생성한 파일을 읽어온다

import java.io.FileInputStream;

public class Main {
    public static void main(String[] args) {
        try {
            FileInputStream fileInput = new FileInputStream("eroom.txt");
            int i = 0;
            //fileInput.read()의 리턴값을 i에 저장한 후, 값이 -1인지 확인
            while ((i = fileInput.read()) != -1) {
                System.out.print((char) i);
            }
            fileInput.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

 

BufferedInputStream

성능이 향상되기 때문에, 대부분 이 방법을 사용

버퍼란 바이트 배열로서, 여러 바이트를 저장하여 한 번에 많은 양의 데이터를 입출력할 수 있도록 도와주는 임시저장공간

 

보조 스트림도 스트림의 하위 클래스이기 때문에 입출력 방법은 같음

import java.io.BufferedInputStream;
import java.io.FileInputStream;

public class Main {
    public static void main(String[] args) {
        try {
            FileInputStream fileInput = new FileInputStream("eroom.txt");
            BufferedInputStream bufferedInput = new BufferedInputStream(fileInput);
            int i = 0;
            while ((i = bufferedInput.read()) != -1) {
                System.out.print((char) i);
            }
            fileInput.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
728x90