본문 바로가기
자바

자바 File 클래스 [북붙따라하기]

by 세상 모든 것 들은 그 자신을 위해 존재한다. 2020. 12. 30.

사용 예제 ) 코드를 복붙 하여 실행해 보시기 바랍니다.

설명은 예제 안에 주석으로 처리를 하였습니다. 

필요한 부분을 고쳐서 사용하시면 되겠습니다.

 

import java.io.File;
import java.io.IOException;

public class Sample {

	public static void main(String[] args) {

///////////////// 파일 클래스 예제 와 설명 입니다.
		try {
			// 디렉토리 와 파일을 만드는 과정입니다.
			// 먼저 디렉토리를 만듭니다.
			// c:/temp에 javatest라는 디렉토리를 만든다.
			File dir = new File("c:/temp/java/test");
			dir.mkdirs(); // 실제로 디렉토리를 만드는 메소드

			// 그리고 파일을 만들 생성자를 만들어 줍니다. 전체 경로를 사용해야 됩니다.
			File file = new File("c:/temp/java/test/test.txt");

			// file.createNewFile()로 파일을 만듭니다.
			// 파일이 만들어 져야 true 기존파일이 존재하면 false 로 else 실행
			if (file.createNewFile()) { // 파일 만들기 메소드

				// 만든 파일의 이름을 출력함
				String strfileName = file.getName();

				System.out.println("만든 파일: " + strfileName);

			} else {

				System.out.println("파일이 존재해 만들지 않았습니다.");
			}

///////////////////////////////////////File 클래스의 메소드 설명 입니다.
			// 1.실행 파일이면 true, 아니면 false 를 돌려줌 \

			boolean booTorF = file.canExecute();

			System.out.println("실행파일인지 여부 : " + booTorF);

			// 2. 파일안의 내용을 읽기,쓰기 가능 하면 true, 아니면 false

			boolean booTorF1 = file.canRead(); // 읽기가능을 확인
			boolean booTorF2 = file.canWrite(); // 쓰기가능을 확인

			System.out.println("booTorF1 읽기가능파일 : " + booTorF1);
			System.out.println("booTorF2 쓰기가능파일 : " + booTorF2);

			
			// 3. 상위 디렉토리를 출력합니다.

			String strPDir = file.getParent();

			System.out.println("상위 디렉토리 : " + strPDir);

			
			// 4. 경로(path) 를 출력합니다.

			String strPath = file.getPath();

			System.out.println("path( 경로 ) : " + strPath);

			
			// 5. 파일의 크기를  비교합니다. 크기가 같으면 0 비교대상즉 메소드안의 인자가 크면 -1 작으면 1
			//앞에서 부터 먼저나온 객체가 크면 1 나주에 나온 객체가 크면 -1 같으면 0 입니다.
			
			File file2 = new File("c:/temp/java/test/test.txt2");
			
			int nResult = file2.compareTo(file);

			System.out.println("file.compareTo 결과  : " + nResult);
			
			
			// 6. 파의 해쉬코드를 돌려주는 메소드.
			
			int nHashcode = file.hashCode();
			
			System.out.println("file.hashCode() 결과  : " + nHashcode);

			
			// 7.디렉토리의 파일 리스트를 배열로 돌려준다.
			
			String[] strArrayFileList = dir.list();
			
			for(int i=0; i<strArrayFileList.length; i++) {
				System.out.println("file.strArrayFileList 결과  : " + strArrayFileList[i]);
			}
			
			
			
			// 8. 디렉토리 인지 아닌지를 true false 로 돌려줌.
			
			booTorF = file.isDirectory();
			System.out.println("file.isDirectory 결과  : " + booTorF);
			
			booTorF = dir.isDirectory();
			System.out.println("dir.isDirectory 결과  : " + booTorF);
			
			
			// 9. file의 존재 여부를 확인 true false 를 돌려줌
			booTorF = file.exists();
			System.out.println("file.exists(); 결과  : " + booTorF);


			// 10. file이 맞는지 여부를 확인 true false 를 돌려줌
			booTorF = file.isFile();
			System.out.println("file.isFile(); 결과  : " + booTorF);
			
			
			// 11. file의 숨김 속성 여부를 확인 true false 를 돌려줌
			booTorF = file.isHidden();
			System.out.println("file.isHidden(); 결과  : " + booTorF);
			
			
			
			// 12. file삭제하고 결과를 true   false로 돌려줌
			booTorF = file.delete();
			System.out.println("file.delete(); 결과  : " + booTorF);
			
			
			
		} catch (IOException e) {
			System.out.println("파일 만들기 에러.");
			e.printStackTrace();
		}

	}
}
//결과는 :

//만든 파일: test.txt
//실행파일인지 여부 : true
//booTorF1 읽기가능파일 : true
//booTorF2 쓰기가능파일 : true
//상위 디렉토리 : c:\temp\java\test
//path( 경로 ) : c:\temp\java\test\test.txt
//file.compareTo 결과  : 1
//file.hashCode() 결과  : 1669201622
//file.strArrayFileList 결과  : test.txt
//file.strArrayFileList 결과  : test2.txt
//file.isDirectory 결과  : false
//dir.isDirectory 결과  : true
//file.exists(); 결과  : true
//file.isFile(); 결과  : true
//file.isHidden(); 결과  : false
//file.delete(); 결과  : true

 

File 클래스는  파일을 만들고 삭제하며 

객체를 이용해 파일의 속성, 리스트, 이름 등의 정보를 얻을 수는 있으나 

파일 안의 내용을 직접 읽지는 못한다.

 

파일 안의 내용을 읽고 쓰는 것은 file steam을 이용해야 한다.

다음 장에서 소개합니다.

끝.

 

 

728x90
반응형

댓글