Day25 - 폴더 생성, 폴더 삭제, FileWriter, FileReader, Buffered

2021. 3. 22. 17:48JAVA 공부

이번에는 , 이 전 글에서 했던 바이트 기반 스트림 파일 입출력에 이어서, 폴더를 생성, 삭제 하는 방법과 문자 기반 스트림 파일 입출력을 알아 볼 겁니다.

 

폴더 생성

File 클래스를 이용해서 만들어 주면 됩니다.

따로 throws 처리가 되어 있지 않아서, try catch 구문을 사용하라고 강제되어 있지 않지만, 안전하게 try catch 구문 안에서 사용해 줍시다 ~

 

먼저, 폴더를 생성하기 전에, 동일한 폴더가 있는지 확인을 해야 합니다.

exists() -> 폴더가 존재하면 true를, 존재하지 않으면 false를 반환합니다.

mkdir() -> 폴더 생성

해당 경로를 확인 해보면, 폴더가 생성이 되었음을 확인 할 수 있습니다.

 

간단하죠?

 

이번에는 삭제에 대해 알아 봅시다

폴더 삭제

폴더를 생성하는 방법이랑 똑같습니다. 생성인지, 삭제인지만 달라요 ~

생성할 때는, mkdir() 이었는데, 삭제는 delete()를 써주면 됩니다.

 

이렇게 폴더의 생성과 삭제에 대해 알아 보았습니다.

 

이제 문자 기반 스트림 파일 입출력에 대해서 알아 봅시다

FileWriter

FileOutputStream, FileInputStream 은 바이트 기반이라서, 문자(한글) 를 사용하기 에는 알맞지 않았습니다.

그래서 문자(한글)를 사용할 때는 문자 기반 스트림 파일 입출력인 FIleWriter, FIleReader 를 써주면 됩니다.

FileWriter 는 문자를 파일에 쓰는데 사용합니다.

 

이미 바이트 기반 스트림 을 배우고 와서 그런지, 거의 비슷한 걸 알 수 있죠?

FileWriter는, 문자 기반이기 때문에, 바로 String(문자열)을 사용해주면 됩니다.

\r -> 캐리지리턴 ( 글자를 처음으로 )

\n -> 줄바꿈

줄을 바꿔 줄때는 항상 \r\n 을 같이 사용해 줍시다.

FileReader

문자 기반 스트림의 파일 읽기 입니다.

FileOutputStream 과 비슷합니다

이렇게 사용 해주면 됩니다 ~

 

그리고 이러한 입출력 스트림은 향상된 성능을 가지고 있는 Buffered가 있습니다.

Buffered

Buffered는 입출력의 성능을 향상시킨 클래스 입니다.

데이터를 버퍼에 저장한 후 한번에 쓰고, 읽기 때문에 속도가 빠릅니다

 

FileOutputStream, FileInputStream, FileWriter, FileReader 4개 전부에 사용할 수 있습니다.

 

각각 예제를 통해서 확인해 봅시다

 

BufferedOutputStream

Buffered가 붙은 클래스는 입출력 성능향상을 위한 클래스 이며, OutputStream은 바이트 기반 입니다.
Buffered는 생성자의 매개변수로 입출력 클래스를 전달 받습니다.

출력하는 경우에는 버퍼에 모인 데이터를 전송 해주어야 하기 때문에,

flush를 사용해 주면 됩니다.

 

BufferedInputStream

BufferedInputStream은 바이트기반 성능향상 스트림 입니다.
문자를 쓰기엔 적합하지 않습니다.

BufferedWriter

역시나 출력은 flush() 를 사용해 주어야 합니다

 

BufferedReader

BufferedReader 는 새로운 기능이 하나 있는데.... 바로 readLine() 입니다

 

readLine() -> 한줄 씩 읽기

 

 

이렇게 오늘은 api.io 에 대해서 알아 보았습니다.

 

고생하셨습니다