2011년 2월 15일 화요일

java : 입출력 API(3) => File 클래스

1. File class
: 기존의 파일이나 폴더에 대한 제어를 하는데 사용.

2. File class의 생성자.
-File(File parent, String child) : create File object about Child File In Parent folder.
-File(String parent)
-File(String parent, String child)
ex) New File("File name"); // New File("directory name","File name");

3. File class method.
- boolean canread() / boolean canwrite()
- boolean createNewFile(): create file
- boolean delete : delete file/
- boolean exists()
- File getAbsoluteFile() : Path 
- String getAbsolutePath() ex) C:\jdk1.4\bin\readme.txt
- String getName() : 파일이름. ex) readme.txt
- boolean isDirectory() : 폴더인지의 여부.
- boolean isFile() : 파일인지의 여부
- File객체명.length() : 파일의 크기 ex) f.length();

java : 입출력 API(2)

1. a.txt -> b.txt 로 copy!
import java.io.*;

public class fileCheck2 {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  File file1 = new File("C:/mkj.txt");//copy 될 파일(source)
  File file2 = new File("c:/mbj.txt"); //내용이 복사될 파일(target)

FileReader fr = new FileReader(file1);
 BufferedReader br = new BufferedReader(fr);
//FileReader로 연결한 뒤에 BufferedReader로 한줄씩 읽는다.
  
 BufferedWriter bw = new BufferedWriter(new FileWriter(file2));

//reader와 writer은 쓰는 방법을 한줄로 압축한 차이이다.

try{

(1) Target파일에 쓰는 첫번째 방법.
  int line=0;
   while( (line = br.read()) != -1)
   {
    System.out.println(line);
    bw.write(line);
   }

(2) Target파일에 쓰는 두번째 방법
   String line = null;
   while( (line = br.readLine()) != null)
   {
    System.out.println(line);
    bw.write(line);
   }
  
   } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
   bw.close();
   br.close();
//close()를 해주지 않으면 파일에 쓰여지는 것이
  완료되지 않으므로 주의할것! 가장 중요한 부분일수도 있다.
 }
}
//C를 확인하면 mkj.txt에 적은 같은 내용의 파일이 생성.