표준 입출력과 File: RandomAccessFile
·
자바/입출력 IO
1. RandomAccessFile - 자바에서는 입력과 출력이 각각 분리되어 별도로 작업을 하도록 설계되어 있는데, 이 RandomAccessFile만은 하나의 클래스로 입력과 출력을 모두 할 수 있도록 되어 있다. - RandomAccessFile은 InputSteam과 OutputStream으로부터 상속받지 않고, DataInput 인터페이스와 DataOutput 인터페이스를 모두 구현했기 때문에 읽기와 쓰기가 모두 가능하다. - RandomAccessFile 클래스의 가장 큰 장점은 파일의 어느 위치에나 읽기/쓰기가 가능하다는 것이다. ( 다른 입출력 클래스들은 입출력 소스에 순착적으로 읽기/쓰기를 하기 때문에 읽기와 쓰기가 제한적이다. ) - 그러므로, RandomAccessFile 클래스는 어..
표준 입출력과 File: System(in, out, err)
·
자바/입출력 IO
1. 표준 입출력 - System.in, System.out, System.err - 자바에서는 System.in, System.out, System.err을 제공하는데, 자바 어플리케이션의 실행과 동시에 사용할 수 있게 자동적으로 생성되기 때문에 개발자가 별도로 스트림을 생성하는 코드를 작성하지 않고도 사용 가능하다. - in, out, err는 System에 정의된 클래스(static) 변수이다. - 아래의 코드처럼 InputStream과 PrintStream이 선언부로 되어있지만, 사실 BufferedInputStream과 BufferedOutputStream의 인스턴스를 사용한다. public final class System{ public final static InputStream in = n..
문자 기반의 보조 스트림: (Buffered, InputStream, OutputStream) 읽기와 쓰기
·
자바/입출력 IO
1. BufferedReader와 BufferedWriter - 버퍼를 이용해서 입출력의 효율을 높일 수 있도록 해주는 역할을 한다. - 버퍼를 이용하면 입출력의 효율이 비교할 수 없을 정도로 좋아진다. - BufferedReader의 readLine()을 사용하면 라인 단위로 읽는다. - BufferedWriter의 newLine()을 사용하면 줄바꿈을 해준다. 1-1. BufferedReader와 BufferedWriter를 이해하기 위한 예제(1) ( 문장 끝 ';'이 포함된 구문만 출력되게 하였다. ) 2. InputStreamReader와 OutputStreamWriter - 바이트 기반 스트림을 문자 기반 스트림으로 연결시켜주는 역할을 한다. - 바이트 기반 스트림의 데이터를 지정된 인코딩의 ..
문자 기반 스트림: (File, Piped) Reader/Write
·
자바/입출력 IO
1. Reader와 Writer - 바이트 기반 스트림의 조상이 InputStream과 OutputStream인 것과 같이 문자 기반 스트림 에서는 Reader와 Writer가 그와 같은 역할을 한다. - byte 배열 대신 char 배열을 사용한다는 것 외에는 바이트 기반 스트림과는 다르지 않다. - 문자 기반 스트림은 단순히 2 byte로 스트림을 처리하는 것만을 의미하지 않고, 문자 데이터를 다루는데 필요한 또 하나의 정보는 인코딩이 있다. - 그러므로, Reader는 특정 인코딩을 읽어서 유니코드로 변환하고 Writer는 유니코드를 특정 인코딩 으로 변환하여 저장한다. 2. FileReader와 FileWriter - FileInputStream과 FileOutputStream의 방법이랑 다르지 ..