File 클래스는 파일과 폴더를 관리하는 클래스 입니다.해당 클래스를 사용하기 위해 객체를 생성함에 있어 4가지의 생성자가 존재합니다.
<※ 코드는 다음과 같습니다.>
File f1 = new File("a.txt"); // File(String fileName)
File f2 = new File("C:\\test"); // 파일 및 디렉토리(폴더)를 모두 포함한다
File f3 = new File("C:\\test", "b.txt");// File(String parent, String child)
File f4 = new File(f2, "c.txt"); // File(File parent, String child)
FileWriter는 File클래스 자료형과 boolean자료형의 매개 변수를 전달하여 객체 생성이 이루어집니다.지정한 File 매개변수에 내용을 저장하고 boolean 매개변수 값이 true 면 기존값을 유지하고 false 면 새로운 내용으로 덮어 쓰게 됩니다.
// (상단의 코드에서 이어집니다.)
File f2 = new File("a.txt");
if(f2.exists() == false) {
f2.createNewFile();
}
// FileWriter(File dest, boolean append)
// 지정한 dest 파일에 내용을 기록한다.
// append가 true이면 기존내용을 유지하고 추가한다. false면 덮어쓴다
FileWriter fw = new FileWriter(f2, false);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Hello\n");
bw.write("안녕하세요\n");
bw.flush();
bw.close();
이후 BufferedWriter를 통해 내용을 장석한 뒤 내장 메서드 flush()를 사용하여 BufferedWirter의 객체에 담긴 내용을 밀어내게 됩니다.Buffered의 가장 큰 핵심은 원래 일정 데이터가 모여야 자동으로 밀어내는데 flush()메서드를 통해 원하는 수준에서 해당 작업을 수행할 수 있다는 것입니다.
FileReader는 파일의 내용을 읽어 올때 char자료형으로 읽어 오기 때문에 한글자씩 읽어 오게 됩니다.따라서 FileWriter와 같이 Buffered클래스를 사용하게 되지만 readline() 메서드를 활용하여 반복문을 통한 출력이 이루어지게 됩니다.
// (상단의 코드에서 이어집니다.)
FileReader fileReader = new FileReader(f);
BufferedReader br = new BufferedReader(fileReader, 1024);
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}
System.out.println("읽기 끝");
br.close();
fileReader.close();