InputStream, OutputStream 클래스

💾 예제파일 - 실습폴더에 다운받아 압축 풀 것

sec12_chap03.zip

파일로부터 읽어오기

☕ Ex01.java

		public static final String SONG_PATH = "src/sec12/chap03/beatles.txt";

아래의 메소드들을 main 메소드에서 하나씩 실행

		public static void fileInputStrmEx1 () {

        //  💡 FileInputStream
        //  - InputStream으로부터 상속
        //  - 파일로부터 데이터를 받아오는데 사용
        //  - try-with-resources로 스트림 열고 닫음
        try (FileInputStream fis = new FileInputStream(SONG_PATH)) {
            int readByte;
            //  💡 read : 파일로부터 1바이트씩 읽어옴 - 성능 저하
            //  - 더 읽어올 것이 없을 시 -1 반환
            while ((readByte = fis.read()) != -1) {
                char readChar = (char) readByte;

                System.out.print(readChar); // 한 글자씩 나란히 출력
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    } // ⚠️ 한글은 인코딩 설정이 안 되어있으므로 깨져서 나옴
		public static void fileInputStrmEx2 () {

        //  ⭐️ 인코딩 설정 - UTF-8
        Charset charset = StandardCharsets.UTF_8;

        try (
                FileInputStream fis = new FileInputStream(SONG_PATH);

                //  💡 InputStreamReader : 바이트 스트림을 문자열 스트림으로
                //  - 인코딩 적용 등에 사용
                InputStreamReader isr = new InputStreamReader(fis, charset)
        ) {
            int readByte;
            while ((readByte = isr.read()) != -1) {
                char readChar = (char) readByte;
                System.out.print(readChar);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }