FileTest01~03

조수경·2021년 11월 15일
0

고급자바

목록 보기
40/97
package kr.or.didt.basic;

import java.io.File;

public class FileTest01 {

	public static void main(String[] args) {
        //File객체 만들기 연습
		
		//1. new File(String 파일 이름 또는 경로)
		//     ==> 디렉토리와 디렉토리 사이 또는 디렉토리와 파일명 사이의
		//         구분 문자는 '\'를 사용하거나 '/'를 사용할 수 있다.
		
//		File file1 = new File("d:/d_other/test.txt");//구분 문자로 '/'사용
		File file1 = new File("d:\\d_other\\test.txt");//구분 문자로 '\'사용
		System.out.println("파일명 : " +file1.getName());
		System.out.println("디렉토리여부 : " +file1.isDirectory());
		System.out.println("파일 여부 : " +file1.isFile());
		System.out.println();
		
		File file2 = new File("d:/D_Other");
		System.out.println("폴더명 : "+file2.getName());
		System.out.println("디렉토리 여부 : "+file2.isDirectory());
		System.out.println("파일 여부 : " +file2.isFile());
		System.out.println();
		
		//2-1. new File(File parent, String child)
		//2-2. new File(String parent, String child)
		//       ==> 'parent'폴더(디렉토리) 안에 있는 'child'파일을 나타낸다.
//		File file3 = new File(file2, "test.txt");
		File file3 = new File("d:/D_Other", "test.txt");
		System.out.println("파일명 : " +file3.getName());
		System.out.println("디렉토리여부 : " +file3.isDirectory());
		System.out.println("파일 여부 : " +file3.isFile());
		System.out.println();
		
		// 디렉토리(폴더) 만들기
		/*
		 * - mkdir() ==> File객체의 경로 중 마지막 위치의 디렉토리를 만든다.
		 *         ==> 반환값 : 만들기 성공 : true, 만들기 실패 : false
		 *         ==> 중간 부분의 경로가 모두 만들어져 있어야
		 *             마지막 위치의 디렉토리를 만들 수 있다.
		 * - mkdirs() ==> 중간 부분의 경로가 없으면 중간 부분의 경로도
		 *                같이 만들어 준다.           
		 * 
		 */
		
		File file4 = new File("D:/d_other/연습용");//없어도 객체 생성가능
		System.out.println(file4.getName()+"의 존재 여부 : "+ file4.exists());
		
		if(!file4.exists()){//연습용 폴더가 존재하지 않으면 실행하라
			
			if(file4.mkdir()){//만들기가 성공했으면 실행 아니면 else
				System.out.println(file4.getName() + "만들기 성공!!!!");
			}else{
				System.out.println(file4.getName() + "만들기 실패~~~~");
			}
		}else{
			System.out.println(file4.getName()+"은 이미 존재합니다.");
		}
		System.out.println();
		
		File file5 = new File("d:/d_other/test/java/src");
                //맨끝에 있는 src를 만들겠다는 의미
		if(!file5.exists()){
			if(file5.mkdirs()){
				System.out.println(file5.getName() + "만들기 성공!!");
			}else{
				System.out.println(file5.getName() + "만들기 실패~~");
			}
		}else{
			System.out.println(file5.getName() + "은 이미 존재합니다.");
		}
	}

}
package kr.or.didt.basic;

import java.io.File;

public class FileTest02 {

	public static void main(String[] args) {

		File f1 = new File("d:/d_other/test.txt");
		System.out.println(f1.getName() + "의 크기 : " + f1.length() + "bytes");
		
		System.out.println("path : " + f1.getPath());
		System.out.println("absolutePath : " + f1.getAbsolutePath());
		
		File f2 = new File(".");
		System.out.println("path : " + f2.getPath());
		System.out.println("absolutPath" + f2.getAbsolutePath());
		System.out.println("-----------------------------------");
		
		if(f2.isDirectory()){
			System.out.println(f2.getName() + "은 디렉토리 입니다.");
		}else if(f2.isFile()){
			System.out.println(f2.getName() + "은 파일 입니다.");
		}else{
			System.out.println(f2.getName() + "은 뭘까?");
		}
		
		File f3 = new File("d:/d_other/sample.exe");
		if(f3.isDirectory()){
			System.out.println(f3.getName() + "은 디렉토리 입니다.");
		}else if(f3.isFile()){
			System.out.println(f3.getName() + "은 파일 입니다.");
		}else{
			System.out.println(f3.getName() + "은 뭘까?");
		}
	}

}
package kr.or.didt.basic;

import java.io.File;
import java.sql.Date;
import java.text.SimpleDateFormat;

public class FileTest03 {

	public static void main(String[] args) {
		FileTest03 test = new FileTest03();
		
		File file = new File("d:/d_other");
		
		test.displayFileList(file);
		
	}

	// 디렉토리를 갖는 File객체를 인수 값으로 받아서
	// 해당 디렉토리에 있는 모든 파일과 디렉토리 목록을 출력하는 메서드
	public void displayFileList(File dir){
		if(!dir.isDirectory()){
			System.out.println("대상 디렉토리(폴더)가 없거나, 디렉토리(폴더)만 가능합니다.");
			return;
		}
		
		System.out.println("[" + dir.getAbsolutePath() + "] 디렉토리 내용");
		System.out.println();
		
		// 해당 디렉토리 안에 있는 모든 파일과 디렉토리 목록을 구해온다.
		File[] files = dir.listFiles();
		//String[] filesstr = dir.list();
		
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd a HH:mm");
                //년-월-일 오전/오후 몇시:몇분
		
		//가져온 파일과 디렉토리 목록 개수만큼 반복 처리
		for (int i = 0; i < files.length; i++) {
			String fileName = files[i].getName();
			
			String attr = ""; //파일 속성(읽기, 쓰기, 히든, 디렉토리여부)
			String size = ""; //파일 크기
			
			if(files[i].isDirectory()){
				attr = "<DIR>";
			}else{
				size = files[i].length() + "";//+ ""을 추가해서 문자로 만들어 준것
				attr = files[i].canRead() ? "R" : "";
				attr += files[i].canWrite() ? "W" : "";
				attr += files[i].isHidden() ? "H" : "";
			}
			System.out.printf("%s %5s %12s %s\n",
					df.format(new Date(files[i].lastModified()) )
					, attr , size, fileName);//attr는 5글자 안에 쓰라는 말
		}
		
		
	}
	
}
profile
신입 개발자 입니다!!!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN