File 클래스
파일 입출력에서 중요한 부분을 담당하는 File클래스에 대해 알아본다.
이 File클래스는 File에 대한 추상적인 객체를 생성하여 파일을 관리하는 기능을 가진다.
파일 또는 디렉터리를 생성하거나 삭제하거나 정보를 확인하거나 등의 작업을 처리할 수 있는 메서드를 갖고 있다.
javadoc에서 File클래스를 찾아보자.
위치는 java.io 패키지의 File클래스이다.
File클래스는 다음과 같은 필드를 갖는다.
위 값들은 static final 상수로 운영체제에서 사용하는 구분자를 갖는다.
pathSeperator는 운영체제의 경로 구분자를 char형태와 String형태로 저장
seperator는 운영체제의 디렉터리 구분자를 char형태와 String형태로 저장
Windows : seperator( \ 백슬래시 ), pathSeperator( ; 세미콜론 )
Uinux계열 : seperator( / 슬래시 ), pathSeperator( : 콜론 )
생성자 정보
파일클래스는 입출력에서 사용할 대상을 지정하는 용도이다.
HDD의 존재하거나 존재하지 않는 파일, 디렉터리 등을 지정할 수 있다.
존재하지 않는 파일이나 디렉터리를 경로로 지정하여 객체를 생성하는 것은 가능하다.
이럴 때 File객체로 없는 파일을 실제로 HDD에 생성할 수 있다.
하지만 파일이 존재하지 않는 경우 입출력을 한다면 예외가 발생된다.(FileNotFoundException)
URI를 전달하여 File객체 생성 시 웹상의 자원을 파일로 지정이 가능하다.
메서드는 거의 대부분 파일을 관리하는 기능을 가진다.
메서드의 이름이 기능을 표현하고 있으므로 큰 어려움 없이 파일의 정보를 사용할 수 있다.
예제를 통해 확인 메서드 사용 확인
package exam;
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class Exam {
public static void main(String[] ar) {
File[] roots = File.listRoots();
for (int i = 0; i < roots.length; ++i) {
System.out.println(i + " : " + roots[i]);
}
System.out.println("───────────────────────────");
File dir = new File(".");
String[] s = dir.list();
for (int i = 0; i < s.length; ++i) {
System.out.println(i + " : " + s[i]);
}
System.out.println("───────────────────────────");
File f1 = new File(dir, "Exam.java");
System.out.println("dir is dir = " + dir.isDirectory());
System.out.println("f1 is file = " + f1.isFile());
System.out.println("f1 is hidden = " + f1.isHidden());
System.out.println("f1 is lastModified = " + new Date(f1.lastModified()));
System.out.println("f1 is size = " + f1.length() + "bytes");
System.out.println("f1 name = " + f1.getName());
System.out.println("f1 parent = " + f1.getParent());
System.out.println("f1 path = " + f1.getPath());
boolean b = f1.exists();
System.out.println("b = " + b);
System.out.println("f1 abs path = " + f1.getAbsolutePath());
System.out.println("f1 read? " + f1.canRead());
System.out.println("f1 write? " + f1.canWrite());
System.out.println("───────────────────────────");
File f2 = new File("aaa.txt");
try {
boolean bool = f1.createNewFile();
System.out.println("bool = " + bool);
} catch (IOException e) {
}
try {
File tmpFile = File.createTempFile("temp", ".ksh1", f1);
System.out.println("f2 = " + f2);
tmpFile.deleteOnExit();
} catch (IOException e) {
}
f2.deleteOnExit();
System.out.println("───────────────────────────");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
}
}
위 메서드 동작을 이해하고 파일객체를 활용하도록 한다.
'교육자료 > Java' 카테고리의 다른 글
Java IO 문자스트림(char기반) (0) | 2017.07.02 |
---|---|
Java IO 바이트스트림(byte기반) (0) | 2017.06.30 |
Java Thread (쓰레드) (0) | 2017.06.30 |
Java Exception(예외처리) (0) | 2017.06.28 |
Java Collection part2 (0) | 2017.06.28 |