본문 바로가기

데이터 입출력

문자 입출력 스트림

문자 출력

  • Writer는 문자 출력 스트림의 최상위 클래스로, 추상 클래스. 모든 문자 출력 스트림 클래스는 Writer 클래스를 상속받아서 만들어짐


    출처, 이것이 자바다


  • Writer 클래스에는 모든 문자 출력 스트림이 기본적으로 가져야 할 메소드가 정의됨


    출처, 이것이 자바다


package ch18.sec04.exam01;

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

/*
 문자 출력스트림을 통한 파일생성및 쓰기작업.
 */

public class writeExamaple {

    public static void main(String[] args) {

        //new FileWriter("C:/dev/temp/test.txt", true);
        //파일이 존재하지 않으면 생성한다. 존재하면 기존내용에 작업이 추가된다.

        try {
            Writer writer = new FileWriter("C:/dev/temp/test.txt"); //파일생성 //연속작업을 할려면 ,true를 붙여줌

            //1)writer 출력스트림에서 관리하는 버퍼에 채운다.
            //문자출력
            char a = 'A';
            writer.write(a);
            char b = 'B';
            writer.write(b);

            //char 배열 출력
            char[] arr = {'C', 'D', 'E'};
            writer.write(arr);

            //문자열 출력
            writer.write("FGH");

            //2)버퍼의 내용을 test.txt에 쓴다(저장). 버퍼내용은 비워진다.
            writer.flush();

            //3)출력스트림을 닫고 메모리 해제
            writer.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

문자 읽기

  • Reader는 문자 입력 스트림의 최상위 클래스로, 추상 클래스
  • 모든 문자 입력 스트림 클래스는 Reader 클래스를 상속받아서 만들어짐


    출처, 이것이 자바다


  • Reader 클래스에는 문자 입력 스트림이 기본적으로 가져야 할 메소드가 정의됨


    출처, 이것이 자바다


package ch18.sec04.exam02;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.Reader;

/*
 문자 입력스트림을 통한 파일 데이터 읽기
 */

public class ReadExample {

    public static void main(String[] args) {

        Reader reader = null;

        try {
            //1. 문자 읽기
            reader = new FileReader("C:/dev/temp/test.txt");
            while(true) {
                int data = reader.read();
                if(data == -1) break;
                System.out.print((char)data); //문자로 변환하여 출력한다.
            }

            reader.close();
            System.out.println();

            //2. 문자 배열로 읽기
            reader = new FileReader("C:/dev/temp/test.txt");
            char[] data = new char[100];
            while(true) {
                int num = reader.read(data);
                if(num == -1) break;
                for(int i=0; i<num; i++) {
                    System.out.print(data[i]);
                }
            }
            reader.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

'데이터 입출력' 카테고리의 다른 글

문자 변환 스트림  (0) 2023.02.08
보조 스트림  (0) 2023.02.08
바이트 입력 스트림  (0) 2023.02.08
바이트 출력 스트림  (0) 2023.02.08
입출력 스트림  (0) 2023.02.08