반응형


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

+ Recent posts