본문 바로가기

JAVA

JAVA(2022.05.29) - char 단위 입출력(Console, File)

Char 단위 입출력(Console)

- char단위 입출력 클래스는 클래스 이름이 Reader나 Writer로 끝이 난다

- char단위 입출력 클래스를 이용해서 키보드로부터 한줄 입력 받아서 콘솔에 출력 

  • System.in - 키보드를 의미(InputStream)
  • BufferedReader - 한줄씩 입력 받기위한 클래스 
  • BufferedReader  클래스의 생성자는 InputStream을 입력받는 생성자가 없다 
  • System.in은 InputStream 타입이므로 BufferedReader의 생성자에 바로 들어갈 수 없으므로  InputStreamReader 클래스를 이용해야함  

ex)

import java.io.BufferedReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter; 
    public class CharIOExam01 {
        public static void main(String[] args) {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            //System.in을 사용하기 위해 InputStreamReader클래스를 이용해야함 
            //키보드로 입력받은 문자열을 저장하기 위해 line변수를 선언               
            String line = null;     
            try {
                line = br.readLine()
            } catch (IOException e) {
                e.printStackTrace();
            }
            ///try-with-resources구문을 통해 close()를 사용하지 않음 
            
            //콘솔에 출력 
            System.out.println(line);
        }
    }

 

Char 단위 입출력(File)

- char단위 입출력 클래스는 클래스 이름이 Reader나 Writer로 끝이 난다

- 파일에서 읽기위해 FileReader 사용 

- 한 줄 읽어 들이기 위해 BufferedReader클래스 이용 

- BufferedReader 클래스가 가지고 있는 readLine() 메소드가 한줄씩 읽게 해준다 

- 더 이상 읽을 내용이 없을 때 null을 return한다

- 파일에 쓰기 위해 FileWriter 클래스 이용

- 편리하기 출력하기 위해서 PrintWriter 클래스 이용 

  • PrintWriter란 ? 

- PrintWriter는 스트림에 있는 개체의 형식화된 표현을 텍스트 출력으로 인쇄합니다

- PrintWriter클래스의 생성자에는 FileNotFoundException예외를 발생하기 때문에 반드시 예외처리를 해야한다

 

ex) 

  import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter; 
    public class CharIOExam02 {
        public static void main(String[] args) {
            BufferedReader br = null; //한 줄 읽어들이기 위해 사용
            PrintWriter pw = null;  //편리하게 출력하기 위해 
            try{        
                br = new BufferedReader(new FileReader("src/javaIO/exam/CharIOExam02.java"));
                pw = new PrintWriter(new FileWriter("test.txt"));
                String line = null;
                while((line = br.readLine())!= null){
                    pw.println(line);
                }
            }catch(Exception e){
                e.printStackTrace();
                //예외처리 
            }finally {
                pw.close();
                //작성을 멈춘다
                try {
                    br.close();
                    //read를 멈춘다 
                } catch (IOException e) {
                    e.printStackTrace();
                    //예외처리 
                }
            }
        }
    }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* 위 게시물은 프로그래머스<자바중급>강의를 복습하며 작성한 글입니다*