본문 바로가기

프로그래밍./Java

[자바] 파일 입출력. 파일에 읽기 / 쓰기. 간단 예제. (FileWriter, FileReader)


[자바] 파일 입출력. 파일에 읽기 / 쓰기. 간단 예제. (FileWriter, FileReader)

화면에, 모니터에 출력하는 것이 아닌, 파일에 원하는 내용을 쓰는 FileWriter, FileReader

FileWriter, FileReader 요놈들은 java.io.FileWriter, java.io.FileReader 을 import 시켜주고
객체를 생성해서 사용하면 간단하다. 귀찮거나 모르면 java.io.*   해주면 된다.

io inpout, output을 줄여서 이야기 하며. 입출력을 담당한다. 

일단 파일쓰기 예제를 보도록 하자.

 

일단 쓸 내욜을 String에 담는다.

String의 크기만큼의 캐릭터 배열을 만든다.
.length()를 이용해서 source의 크기 만큼.

source.getChars(시작, 끝, 담을 배열, 0)
[처음부터 쓸거니 0, source의 크기, source를 담을 char 배열(input), 0]

FileWriter 객체를 생성한다.

생성자에는 String이 들어간다. 따라서 String 변수를 넣어도 되고,
위 처럼 직접 입력해도 된다. 파일 경로와 파일 명 까지 입력해 주어야 함.
보통 C 드라이브에 하지만, 개인적인 사정상 E 드라이브에 생성하였다.
본인이 원하는 경로를 입력해 주자.

input에 저장된 내용을 지정한 파일에 쓴다.

지정한 파일을 닫는다. (꼭 닫아주자.)



다음은 읽기 예제.
읽어들일 파일의 경로를 적어 주면서 FileReader 객체를 생성하자.

파일을 읽어 들일때 문자가 아닌 바이트로 받아 들인다. 그래서 i 에 fr.read를 담을 있는 것이다.
파일의 맨 끝. 파일이 끝나면 -1 이 반환된다. 따라서 위 반복문은 파일이 끝날 때까지 읽어 들이고
그 내용을 문자로 변환해서 print 함수로 화면에 보여주라는 것이다.


추가로 중요한점 몇가지.
Exception. 예외처리 하는 건데. 꼭 써야된다 - -
정확한 이유는 모르겠지만 반드시 써야 한다.
아니면 본인이 직접 입출력 관한 코드에서 try - catch로 예외처리를 해주어야 한다.

그냥 쓰자. Throws Exception 써주면 된다. 자동으로 예외처리를 하니.

그리고 아는 사람은 알겠지만. 원래 길이나 크기를 반환하는 경우
.length 를 사용한다. 하지만 String의 경우 클래스 이기 때문에
메소드로 접근을 해야 한다나? 뭐 그래서 .length()를 사용해야 한다.
애초에 이클립스에서 자동으로 .length()를 해주긴 하지만.


유용한 정보가 되셨다면 아래 손가락 버튼 한번 눌러주세요 ^-^