스마트웹앱콘텐츠전문가/JAVA

[파일 이어쓰기]FileWriter 사용

9D4U 2018. 1. 16. 10:34
728x90
반응형

파일을 업로드 동작을 구현하는 데 있어서,

추가로 업로드 되어야 하는 파일에 문자열 등을 넣어서 수정하고 싶은 경우,

File Writer 를 사용하여, 흔히 '이어쓰기' 라는 동작을 구현할 수 있습니다.


File f = new File("파일 경로");


FileWriter fw = new FileWriter(f, true);  <- 2번째 인자의 boolean값이 true로 지정되면 해당 파일에 이어쓰기가 됩니다.

(반대로, 2번째 인자가 없거나 false로 지정된 경우는 덮어쓰기가 됩니다.)


fw.write("수정할 내용 등"); <- 수정할 내용이 이어쓰기가 됩니다.


fw.flush();

※주의 : 버퍼 사용시 주의해야 합니다. FileWriter 사용시 flush()를 꼭 사용해 주서야 합니다. 

           flush()를 사용해 주어야  실제 파일에 수정하라 내용이 이어쓰기 동작이 됩니다.


예시)


File f = new File("파일 경로");

System.out.println("파일의 존재 여부 : " + f.exists()); // boolean값 - 존재 유무 확인

System.out.println("파일의 크기" + f.length()); //단위 - 바이트

Long mdate = f.lastModified();

Date date = new Date(mdate);

System.out.println("파일의 마지막 수정 날자2 :" + date);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");

System.out.println("파일의 마지막 수정 날자3 :" + sdf.format(date));

System.out.println("파일의 getParent :" + f.getParent()); //상위디렉토리

System.out.println("파일의 getAbsolutePath :" + f.getAbsolutePath()); // 절대경로

System.out.println("파일의 getCanonicalPath :" + f.getCanonicalPath());

System.out.println("파일의 getName :" + f.getName()); //파일명

System.out.println("파일의 isDirectory :" + f.isDirectory()); //booleanr값 - 디렉토리인지 확인

System.out.println("파일의 isFile :" + f.isFile()); //boolean값 - 파일인지 확인




/*파일 이어 쓰기 예제 1*/

try {


BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(f, true));

String str = "이어쓰기할 내용입니다.";

bufferedWriter.newLine(); //칸 내림

  bufferedWriter.write(str);

bufferedWriter.write("");

bufferedWriter.flush();

BufferedReader bufferedReader = new BufferedReader(new FileReader(f));

String data = "";

while((data = bufferedReader.readLine()) != null){

System.out.println(data);

}

bufferedReader.close();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}finally {

}

/**/





/*파일 이어쓰기 예제2*/

FileWriter fw = null;

try{

fw = new FileWriter(f, true);

fw.write("fw 테스트 입니다.");

fw.flush();

}catch(Exception e){

e.printStackTrace();

}finally {

try {

if(fw != null)

fw.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**/






728x90

'스마트웹앱콘텐츠전문가 > JAVA' 카테고리의 다른 글

자바 날짜(시간) 비교  (0) 2018.05.24
[날짜 비교]after  (0) 2018.04.23
현재 페이지 URL 가져오기  (0) 2018.01.15
[IP관련]HOSTIP 구하기  (0) 2017.09.12
[파일입출력]파일 클래스  (0) 2017.09.12