JAVA/IOStream

FileWriter & FileReader를 이용한 출력과 파일 복사 하기

DesignatedRoom 2020. 10. 6. 18:17

아래는 파일을 생성하고 그 파일에 우리가 기록하고자하는 내용을 써보는 예제이다.

아래에서 server.txt파일이 생성 됨을 볼 수 있다.

아래는 파일의 내용이다. 우리가 작성한 내용과 같다.

 

아래의 예제는 파일에서 읽어와서 출력하는 간단한 예제이다.

우선, 파일의 이름을 알고 있어야 하고, 파일이 존재해야 한다.

아래는 파일의 이름을 가지고 그 파일의 내용을 한 글자씩 가지고 와서 출력한다.

프로그램 실행결과

 

이번에는 입력과 출력을 동시에 활용한 예제이다.

우리가 파일 명과 파일에 쓸 내용을 입력받는다고 하자.

입력받은 파일 명으로 파일을 만들고 이 파일에 입력받은 내용을 쓰도록 하자.

그리고 나서 다시 파일 명을 입력받아 파일에 있는 내용을 가지고 와서 출력해보자.

이 문제는 크게 파일명과 파일에 쓸 내용을 입력받아 파일명으로 파일을 만들고

이 파일에 내용을 써서 확인을 하는 것이 먼저다.

그리고 나서 파일 명을 입력 받아 이 파일의 내용을 읽어와서 출력하는 것이 그 다음이다.

위에서 BufferedReader를 쓴 이유는 readLine함수가 있어서 한 줄 단위로 읽을 수 있기 때문이다.

BufferedReader를 쓰지 않고 InputStreamReader를 써서 한 글자씩 읽어올 수 있으나,

이 방식은 선호하지 않는 방식이다.

 

프로그램 실행결과

출력할 파일명을 입력할 때, 만들어진 파일명을 입력해야 그 내용을 가지고 올 수 있다.

아래는 우리가 콘솔 창에서 입력한 파일의 내용이다.

소스 파일

FileWrite.java
0.00MB

 

이번에는 파일 복사 기능을 만들어보자.

파일 복사 기능을 만들기 전에 아래의 예제를 보자.

위의 프로그램 소스를 보면, arr[0]은 명령어가 저장되고

arr[1]은 복사 원본 파일 이름, arr[2]에는 복사 대상의 파일 이름이 저장된다.

프로그램 실행결과

위의 내용을 숙지했으면, 이제 파일 복사를 해보자.

프로그램 실행결과

아래에 b.txt파일이 생성됨을 볼 수 있다.

a.txt 파일과 내용이 같음을 알 수 있다.

소스 파일

StringParser.java
0.00MB

 

이번에는 위의 내용을 살짝 바꾸어서, 한 줄 단위로 읽는 것이 아닌

한 글자씩 읽어와서 파일복사 기능을 만들어보도록 한다.

a.txt 파일의 내용은 위와 같다.

 

프로그램 실행결과

아래에 b.txt파일의 내용이 위의 a.txt파일과 내용이 같음을 알 수 있다.

소스 파일

ByteReadWrite.java
0.00MB

 

 

파일에 문장 기록하고 읽어 오기

- readLine()메소드는 반드시 Exception 처리해야 한다.

프로그램 실행결과

프로그램 분석

유니코드(Unicode)
   - 유니코드는 16비트 문자셋이며 완성형을 지원. 
   - 문자 코드의 범위는 0 ~ 65535 이다 
   - 전 세계문자 40000자가 기록이 되어 있으며 자바는 유니코드를 사용한다.
   - 문자 한문자를 사용해도 2바이트를 사용한다.
   - 윈도우는 KSC5601 완성형을 사용한다.

 

abc.txt 파일 내용

소스 파일

FileWriterDemo.java
0.00MB

 

 

유니코드 테스트

프로그램 실행결과

소스 파일

CodeTest.java
0.00MB

 

파일 복사

- 입.출력 stream객체를 이용해서  파일을 복사.

도스 상에서 실행시켜서 확인 하자.

 

소스 파일

CopyFile.java
0.00MB