로컬의 자원(텍스트 파일 혹은 자바 파일 등등)을 자바 프로그래밍에서 사용하기 위해 객체 형식으로
변환해 주는 클래스를 말한다.
File 클래스의 API (java.io.*)
생성자
- File(String) : 로컬 시스템에 접근
File f = new File("");
File f = new File("test.txt"); // 특정 파일을 객체화 함. 현재 폴더의 파일만 찾음
File f = new File("C:\\java\\eclipse\\workspace\\test.txt"); // 파일 경로를 적어줄 수 있음.
"" 쌍 따옴표 안에서 경로 적으려면 역슬래시 두번 적은건 기본!!
존재하든 존재 안하든 관계 없이 파일 객체 생성 가능
나중에 사용시 생성 여부를 판단할 것이기 때문에 객체를 만드는 순간에는 그 객체의 파일이 존재 하지 않아도 됨.
- File(File, String) : 로컬 시스템에 접근
매번 경로와 파일명을 길게 써주기가 불편한 경우 사용한다.
File dir = new File("C:\\java\\eclipse\\workspace"); // 경로만 따로 빼준다.
FIle f = new File(dir, "test.txt");
- File(String, String) : 로컬 시스템에 접근
경로와 파일명을 따로 작성한다.
File dir = new File("C:\\java\\eclipse\\workspace","test.txt");
- File(URI) : 웹 / 로컬 시스템에 접근(file:으로 시작하는 경우만)
static은 클래스 명으로 접근 가능하다.
필드
자바의 특징 중 하나는 바로 플랫폼에 독립적인 것이다.
자바 File Field로 pathSeparator와 separator를 제공하는데 왜 굳이 이 필드를 써야 하냐면
윈도우
\ 폴더 구분
; 패스와 패스 사이를 연결하기 위해서 사용
리눅스
\
:
이렇게 달라지니까 자바에서 제공하는 것으로 사용한다면 문제없이 ok
\ : 역슬러시
: 콜론
; 세미콜론
메소드
File f = new File("test.txt");
f.canRead(); //읽을 수 있는가?
f.canWrite();//쓸수 있는가?
만약 파일이 읽기 전용이라면 f.canWrite는 false가 된다.
File f1 = new File("aaa.txt");
boolean bool = f1.createNewFile(); // 파일이 없다면 생성. 잘생성되면 true반환
잠시 존재했다가 없어져야하는 파일 temp파일
File ff = new File(".");//현재 디렉토리에 생성
File f = File.createTempFile("temp",".ksh",ff); //파일명(접두어), 확장자(접미사),경로
File f1 = new File();
f1.delete(); // 파일 삭제 (즉시)
f1.deleteOnExite//프로그램끝날때 지워라..
exit 프로그램 끝날때
f1.exists() // 파일이 있나 없나??
f.getAbsolutePath(); // 이파일의 절대 경로를 알아 낼때 상대경로도 알아내는 메소드 존재한다.
f.getName(); //파일 이름
f.getParent(); //파일의 경로 전체
f.getPath(); //name,과 parent를 합친것
File dir = new File("C:\\java\\eclipse\\workspace"); // 경로만 따로 빼준다.
FIle f = new File(dir, "test.txt");
dir.isDirectory(); // 디렉토리인가? true/false
f.isFile(); // 파일인가? true/false
f.isHidden(); //숨김 파일인가?
new Date(f.lastModifed()) // 마지막 수정일을 반환한다.
f.length()// 파일 크기 byte 단위
// 디렉토리 안의 모든 파일을 리스트 형식으로 가져온다.
string a = f.list();
File ff = f.listFiles();
File ff = new File("c://home//test");
String[] s = ff.list();
for(int i =0; i < s.length; i++){
s[i] // 파일 명을 반환한다.
}
File[] roots = File.listRoots();
for(int i=0; i<roots.length; i++){
roots[i] //모든 루트 출력
}
mkdir() // 새로운 디렉토리 생성
File f = new File("aaa");
f.mkdir(); //aaa.디렉토리 생성
File f = new File("aaa/bbb/ccc");
f.mkdirx(); //복수.디렉토리 생성
메소드
'DEV > java' 카테고리의 다른 글
JDBC 드라이버를 이용하여 접속 테스트 하기 (0) | 2010.03.11 |
---|---|
[ java ] 날짜 관련 클래스 정리 (0) | 2009.08.23 |
velocity spring macro (0) | 2009.03.24 |