Java 길찾기/Java의 정석 썸네일형 리스트형 [Java] 입출력 I/O - File 파일은 기본적이면서도 가장 많이 사용되는 입출력 대상이기 때문에 중요하다. 그래서 관련된 기본적인 내용뿐만 아니라 다양한 활용 예제들을 볼것이다. 그래서 이번 글은 굉장히 길 것이다. 하지만, 이들을 응용해서 다양한 예제들을 만들어 보면 굉장히 도움이 될 것이다. 자바에서는 File 클래스를 통해서 파일과 디렉토리를 다룰 수 있도록 하고 있다. 그래서 File인스턴스는 파일일 수도 있고, 디렉토리일 수도 있다. 앞으로 File클래스의 생성자와 메서드를 관련된 것들끼리 나누어서 예제와 함께 알아보자. 먼저 File의 생성자와 경로에 관련된 메서드를 알아보자. 생성자 / 메서드 설명 File(String fileName) 주어진 문자열(fileName)을 이름으로 갖는 파일을 위한 File인스턴스를 생성한다.. 더보기 [Java] 입출력 I/O - RandomAccessFile 자바에서는 입력과 출력이 각각 분리되어 별도로 작업을 하도록 설계되어 있는데, RandomAccessFile만은 하나의 클래스로 파일에 대한 입력과 출력을 모두 할 수 있도록 되어 있다. InputStream이나 OutputStream으로부터 상속받지 않고, DataInput인터페이스와 DataOutput인터페이스를 모두 구현했기 때문에 읽기와 쓰기가 모두 가능하다. 사실 DataInputStream은 DataInput인터페이스를, DataOutputStream은 DataOutput인터페이스를 구현했다. 이 두 클래스의 기본 자료형(primitive data type)을 읽고 쓰기 위한 메서드들은 모두 이 2개의 인터페이스에 정의되어 있는 것들이다. 따라서, RandomAccessFile클래스도 Data.. 더보기 [Java] 입출력 I/O - 표준입출력의 대상변경(setOut(), setErr(), setIn()) 초기에는 System.in, System.out, System.err의 입출력 대상이 콘솔화면이지만, setIn(), setOut(), setErr()를 사용하면 입출력을 콘솔 이외에 다른 입출력 대상으로 변경하는 것이 가능하다. 메서드 설명 static void setIn(InputStream in) System.in 의 입력을 지정한 InputStream으로 변경 static void setOut(PrintStream out) System.out 의 출력을 지정한 PrintStream으로 변경 static void setErr(PrintStream err) System.err의 출력을 지정한 PrintStream으로 변경 그러나 JDK1.5부터 Scanner클래스가 제공되면서 System.in 으로부.. 더보기 [Java] 입출력 I/O - 표준입출력(System.in, System.out, System.err) 표준입출력은 콘솔(console, 도스창)을 통한 데이터 입력과 콘솔로의 데이터 출력을 의미한다. 자바에서는 표준 입출력(standard I/O)을 위해 3가지 입출력 스트림, System.in, System.out, System.err 를 제공하는데, 이들은 자바 어플리케이션의 실행과 동시에 사용할 수 있게 자동적으로 생성되기 때문에 개발자가 별도로 스트림을 생성하는 코드를 작성하지 않고도 사용이 가능하다. 자바를 처음 시작할 때부터 지금까지 줄곧 사용해온 System.out을 스트림의 생성없이 사용할 수 있었던 것이 바로 이러한 이유 때문이다. System.in - 콘솔로부터 데이터를 입력받는데 사용 System.out - 콘솔로 데이터를 출력하는데 사용 System.err - 콘솔로 데이터를 출력하.. 더보기 [Java] 입출력 I/O - 문자기반의 보조스트림 BufferedReader와 BufferedWriter BufferedReader와 BufferedWriter는 버퍼를 이용해서 입출력의 효율을 높일 수 있도록 해주는 역할을 한다. 버퍼를 이용하면 입출력의 효율이 비교할 수 없을 정도로 좋아지기 때문에 사용하는 것이 좋다. BufferedReader의 readLine()을 사용하면 데이터를 라인단위로 읽을 수 있고 BufferedWriter는 newLine()이라는 줄바꿈해주는 메서드를 가지고 있다. import java.io.*; class BufferedReaderEx1 { public static void main(String args[]) { try { FileReader fr = new FileReader("BufferedReaderEx1.ja.. 더보기 [Java] 입출력 I/O - 문자기반 스트림 문자데이터를 다루는데 사용된다는 것을 제외하고는 바이트기반 스트림과 문자기반 스트림의 사용방법은 거의 같기 때문에 앞에서 설명한 바이트기반 스트림에 대한내용만으로도 별도의 설명은 필요없을 것이라 생각한다. 에제 중심으로 기본적인 사용법과 추가적으로 설명이 필요한 부분만 추가적으로 소개하고자 한다. Reader와 Writer 바이트기반 스트림의 조상이 InputStream과 OutputStream인 것과 같이 문자기반 스트림에서는 Reader와 Writer가 그와 같은 역할을 한다. 다음은 Reader와 Writer의 메서드인데 byte배열 대신 char배열을 사용한다는 것 이외에는 InputStream과 OutputStream의 메서드와 다르지 않다. 메서드 설명 abstract void close() .. 더보기 [Java] 입출력 I/O - 바이트기반의 보조스트림 (3)Sequence, Print SequenceInputStream SequenceInputStream은 여러 개의 입력스트림을 연속적으로 연결해서 하나의 스트림으로부터 데이터를 읽는 것과 같이 처리할 수 있도록 도와준다. SequenceInputStream의 생성자를 제외하고 나머지 작업은 다른 입력스트림과 다르지 않다. 큰 파일을 여러 개의 작은 파일로 나누었다가 하나의 파일로 합치는 것과 같은 작업을 수행할 때 사용하면 좋을 것이다. |참고| SequenceInputStream은 다른 보조스트림들과는 달리 FilterInputStream의 자손이 아닌 InputStream을 바로 상속 받아서 구현하였다. 메서드 / 생성자 설명 SequenceInputStream(Enumeration e) Enumeration에 저장된 순서대로 입.. 더보기 [Java] 입출력 I/O - 바이트기반의 보조스트림 (2)Data DataInputStream과 DataOutputStream DataInputStream과 DataOutputStream도 각각 FilterInputStream과 FilterOutputStream의 자손이며 DataInputStream은 DataInput인터페이스를, DataOutputStream은 DataOutput인터페이스를 각각 구현하였기 때문에, 데이터를 읽고 쓰는데 있어서 byte 단위가 아닌, 8가지 기본 자료형의 단위로 읽고 쓸 수 있다는 장점이 있다. DataOutputStream이 출력하는 형식은 각 기본 자료형 값을 16진수로 표현하여 저장한다. 예를 들어 int값을 출력한다면, 4 byte의 16진수로 출력된다. 각 자료형의 크기가 다르므로, 출력한 데이터를 다시 읽어 올 때는 출력했.. 더보기 이전 1 2 3 4 5 다음