-
FileWriter & FileReader를 이용한 출력과 파일 복사 하기JAVA/IOStream 2020. 10. 6. 18:17
아래는 파일을 생성하고 그 파일에 우리가 기록하고자하는 내용을 써보는 예제이다.
아래에서 server.txt파일이 생성 됨을 볼 수 있다.
아래는 파일의 내용이다. 우리가 작성한 내용과 같다.
아래의 예제는 파일에서 읽어와서 출력하는 간단한 예제이다.
우선, 파일의 이름을 알고 있어야 하고, 파일이 존재해야 한다.
아래는 파일의 이름을 가지고 그 파일의 내용을 한 글자씩 가지고 와서 출력한다.
프로그램 실행결과
이번에는 입력과 출력을 동시에 활용한 예제이다.
우리가 파일 명과 파일에 쓸 내용을 입력받는다고 하자.
입력받은 파일 명으로 파일을 만들고 이 파일에 입력받은 내용을 쓰도록 하자.
그리고 나서 다시 파일 명을 입력받아 파일에 있는 내용을 가지고 와서 출력해보자.
이 문제는 크게 파일명과 파일에 쓸 내용을 입력받아 파일명으로 파일을 만들고
이 파일에 내용을 써서 확인을 하는 것이 먼저다.
그리고 나서 파일 명을 입력 받아 이 파일의 내용을 읽어와서 출력하는 것이 그 다음이다.
위에서 BufferedReader를 쓴 이유는 readLine함수가 있어서 한 줄 단위로 읽을 수 있기 때문이다.
BufferedReader를 쓰지 않고 InputStreamReader를 써서 한 글자씩 읽어올 수 있으나,
이 방식은 선호하지 않는 방식이다.
프로그램 실행결과
출력할 파일명을 입력할 때, 만들어진 파일명을 입력해야 그 내용을 가지고 올 수 있다.
아래는 우리가 콘솔 창에서 입력한 파일의 내용이다.
소스 파일
이번에는 파일 복사 기능을 만들어보자.
파일 복사 기능을 만들기 전에 아래의 예제를 보자.
위의 프로그램 소스를 보면, arr[0]은 명령어가 저장되고
arr[1]은 복사 원본 파일 이름, arr[2]에는 복사 대상의 파일 이름이 저장된다.
프로그램 실행결과
위의 내용을 숙지했으면, 이제 파일 복사를 해보자.
프로그램 실행결과
아래에 b.txt파일이 생성됨을 볼 수 있다.
a.txt 파일과 내용이 같음을 알 수 있다.
소스 파일
이번에는 위의 내용을 살짝 바꾸어서, 한 줄 단위로 읽는 것이 아닌
한 글자씩 읽어와서 파일복사 기능을 만들어보도록 한다.
a.txt 파일의 내용은 위와 같다.
프로그램 실행결과
아래에 b.txt파일의 내용이 위의 a.txt파일과 내용이 같음을 알 수 있다.
소스 파일
파일에 문장 기록하고 읽어 오기
- readLine()메소드는 반드시 Exception 처리해야 한다.
프로그램 실행결과
프로그램 분석
유니코드(Unicode)
- 유니코드는 16비트 문자셋이며 완성형을 지원.
- 문자 코드의 범위는 0 ~ 65535 이다
- 전 세계문자 40000자가 기록이 되어 있으며 자바는 유니코드를 사용한다.
- 문자 한문자를 사용해도 2바이트를 사용한다.
- 윈도우는 KSC5601 완성형을 사용한다.abc.txt 파일 내용
소스 파일
유니코드 테스트
프로그램 실행결과
소스 파일
파일 복사
- 입.출력 stream객체를 이용해서 파일을 복사.
도스 상에서 실행시켜서 확인 하자.
소스 파일
'JAVA > IOStream' 카테고리의 다른 글
BufferedReader, PrintWriter를 이용한 파일 읽고 쓰기 (0) 2020.10.12 LineNumberReader를 이용한 문자 입력받기 (0) 2020.10.12 FileOutputStream,DataOutputStream,FileInputStream,DataInputStream (0) 2020.10.07 InputStreamReader& BufferedReader을 통한 입력받기 (0) 2020.10.05 폴더 만들기 (0) 2020.10.05