[JAVA] Char 입출력

고민정·2024년 4월 9일

JAVA

목록 보기
32/32
post-thumbnail

Char 단위의 입출력 중에 두 가지를 소개할 것이다.

첫 번쨰는 console 을 이용해서 직접 사용자에게 입력을 받는 것이고
두 번쨰는 파일로 한 줄씩 입력받아서 다시 파일로 출력하는 것이다.

두 경우 모두 한 줄씩 읽어오는 객체인 BufferedReader 가 사용된다.
둘 다 한 줄씩 읽어오는데 사용자로부터 입력을 받을것인지, 파일을 받을 것인지에서 차이가 나는 것이다.

사용자로부터 콘솔창에 입력을 받아오는 경우는 System.in 을 사용할 것이고, 파일을 받아오는 경우에는 FileReader 를 사용한다.


💡 Console E.g.

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class CharExam {
    public static void main(String[] args) {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String line = null;

        try{
            line = bf.readLine();
            System.out.println(line);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}


BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

BufferedReaderReader 객체만 받아들일 수 있다.
따라서 System.inReader 형태로 바꿔주어야 한다.

system.in 은 Reader 형태가 아닌 InputStream 으로 받아들여지기 때문에 그냥은 BufferedReader 에 들어갈 수 없다.

System.inInputStreamReader 으로 받아서 Reader 형태로 바꾸어 BufferedReader 에 넣은 것이다.


💡 File E.g.

import java.io.*;

public class CharExam2 {
    public static void main(String[] args) throws FileNotFoundException {
        BufferedReader br = null;
        PrintWriter pw = null;

        try{
            br = new BufferedReader(new FileReader("src/Bus.java"));
            pw = new PrintWriter(new FileWriter("CharExam.txt"));

            String line = null;
            while((line=br.readLine())!=null){
                pw.println(line);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                br.close();
            }catch (Exception e){
                e.printStackTrace();
            }
            try {
                pw.close();
            }catch (Exception e){
                e.printStackTrace();
            }
        }

    }
}

BufferedReader br = null;
PrintWriter pw = null;
br = new BufferedReader(new FileReader("src/Bus.java"));
pw = new PrintWriter(new FileWriter("CharExam.txt"));

finally 구문에서 쓰기 위해서 br, pw 는 따로 선언해두었다.

		while((line=br.readLine())!=null){
                pw.println(line);
            }

한 줄씩 읽어오고 쓰는데, 더 이상 읽어올 자료가 없을 때 까지 읽어온다. (= null ) 일 때 까지 읽어온다는 소리이다.

나머지는 앞에서 해주었던 예외처리를 해주면 된다.
예외처리 포스트 바로가기

0개의 댓글