하위 클래스들


💾 예제파일

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

☕ Ex01.java

		public static final String SONG_PATH = "src/sec12/chap04/beatles.txt";
		public static void fileReaderWriterEx () {
        Charset charset = StandardCharsets.UTF_8;

        //  💡 FileReader & FileWriter
        //  - 파일에 텍스트를 입출력하는 기본 클래스
        try (
                FileReader fr = new FileReader(
                        SONG_PATH, charset
                );
                FileWriter fw = new FileWriter(
                        SONG_PATH.replace("beatles", "beatles_1")
                        , charset
                )
        ) {

            int c;
            //  💡 한 글자씩 불려오고 출력 후 쓰기
            //  - 때문에 비효율적. 곧 다룰 Buffered... 사용
            while ((c = fr.read()) != -1) {
                System.out.print((char) c);
                fw.write(c);
            }

        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
		public static void bufferedReaderWriterEx () {
        Charset charset = StandardCharsets.UTF_8;

        //  💡 BufferedReader & BufferedWriter
        //  - 파일 텍스트 입출력에 버퍼 사용
        try (
                //  💡 기본적으로 8192바이트짜리 🚚 트럭에 실어옴
                FileReader fr = new FileReader(
                        SONG_PATH, charset
                );
                BufferedReader br = new BufferedReader(fr);
                FileWriter fw = new FileWriter(
                        SONG_PATH.replace("beatles", "beatles_2")
                        , charset
                );
                BufferedWriter bw = new BufferedWriter(fw);
        ) {

            String line;
            //  💡 한 줄씩 🧺 바구니에 버퍼링해서 읽어옴
            //  - File... 만 사용하는 것보다 효율적
            while ((line = br.readLine()) != null) {
                System.out.println(line);
                bw.write(line);
                bw.newLine(); // 💡 줄 바꿔줌
            }

        } catch (IOException e) {
            throw new RuntimeException(e);
        }
		}