Daily coding
Java Basic : day 7 - File write 파일 쓰기 본문
File write
File file = new File("d:/tmp/newFile.txt");
// 쓰기 기능이 있는 파일이라면 덮어씀 (읽기 전용 아닌 경우)
* FileWriter : 파일에 문자열 입력하는 클래스
1. 한 문자씩 쓰기
FileWriter fw = new FileWriter(file);
fw.write("하이하이" + "\n");
// 개행이 필요하면 \n을 덧붙여줘야 함
// 위의 코드는 close를 안하면 파일에 쓰기가 안됨!!
// 읽기는 안해도 읽힘
fw.close();
자바로 쓴 파일은 자바에서 읽었을 때 글자가 깨지지 않는다.
2. 추가로 쓰기
* FileWriter 클래스 변수를 만들고 초기화 할 때,
인스턴스가 2개인 생성자 FileWriter(file, true) 로 호출하게 되면
기존 텍스트 파일에 문자열을 더할 수 있다.
FileWriter( file디렉토리 , default값이있음(true, 덮어쓰기)/없음(false))
FileWriter fAppend= new FileWriter(file, true); // <-- default값이 있다 (=덮어쓴다)
fAppend.write(" 건강하세요\n");
fAppend.close();
//결과
하이하이
건강하세요
3. 문장으로 기입하기
: BufferedWriter & PrintWriter 사용이 필요하다.
- BufferedWriter : PrintWriter로 문자를 기입한 것을 문장으로 모아준다. (버퍼에 하나로 모음)
효율적으로 메모리를 사용할 수 있음.
- PrintWriter : 문자열을 파일에서 쉽게 쓸 수 있도록 돕는 메소드 제공(println( ) 같은 메소드)
if(checkBeforeWriteFile(file)) {
FileWriter fWriter = new FileWriter(file); // 기입용 FileWriter(파일 포인터에 설정함)
BufferedWriter bw = new BufferedWriter(fWriter); // 문장으로 모아주는 부분
PrintWriter pw = new PrintWriter(bw); // 모아진 문장을 출력해주는 부분()
pw.print("안녕하세요. 매우 졸립니다. ");
pw.print("bufferedwriter 쓰는중 \n");
pw.println("이거는 println입니다.");
pw.println("문장을 다 쓰면 반드시 close");
pw.close();
}else { // ReadOnly거나 해당 파일이 없는 경우
System.out.println("파일이 없거나 쓸 수 없습니다.");
}
}
파일이 존재하고 쓸 수 있는 파일인지 확인하는 메소드 (유틸리티 함수)
static boolean checkBeforeWriteFile(File f) {
if(f.exists()) { // 파일이 존재함
if(f.isFile() && f.canWrite()) { // 파일이며 쓸수 있는 파일인지
return true;
}
}
return false;
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 8 - 객체 지향 프로그래밍 Object Oriented Programming (0) | 2019.11.27 |
---|---|
Java Basic : day 7 - Example 01 : 메소드로 성적 입출력 프로그램 작성하기 ( CRUD + FileWrite ) (0) | 2019.11.26 |
Java Basic : day 7 - File Read 파일 읽기 (0) | 2019.11.26 |
Java Basic : day 7 - File : 파일 입출력 (0) | 2019.11.26 |
Java Basic : day 7 - Exception 예외처리3 (0) | 2019.11.26 |