JAVA 11강_5_File 클래스, listFiles

열라뽕따히·2024년 3월 2일

JAVA

목록 보기
73/79

File 클래스

  • 파일 및 디렉토리(폴더)를 만들어 주는 클래스
  • 파일 입출력 시에 사용됨
  • 파일 디렉토리에 대한 경로명, 크기, 타입, 수정 날짜 등의 속성을 제공함
    또한 파일 삭제, 디렉토리 생성, 파일 이름 변경, 디렉토리 내의 파일 리스트 제공 등 다양한 파일 관리 작업을 지원함




c:/test/sample 폴더를 만들고
c:/test/sample/sample.txt 파일을 만들어보자


test폴더에 sample 폴더가 없음!


=============================코드=============================

public static void main(String[] args) throws IOException {
		
	// C:/test 폴더가 존재함
	// C:/test/sample 폴더를 만들고 싶음
	// C:/test/sample/sample.txt 파일을 만들고 싶음
		
	// 1. C:/test/sample 폴더를 만들어보자
		File dir = new File("C:/test/sample");
		
		if(!dir.exists()) {    // dir폴더가 존재하지 않는다면 / exists는 boolean타입
			dir.mkdir();      // 실제로 폴더를 만들어주는 메서드
			System.out.println("폴더 생성 완료!");
		}
		
		
	// 2. C:/test/sample/sample.txt 파일을 만들어보자
		File file = new File(dir, "sample.txt");
		
		if(!file.exists()) {
			file.createNewFile();     // 새로운 파일을 만들어주세요!
			System.out.println("파일 생성 완료!");
		}

	}

=============================실행=============================





그렇다면 FileIO_05 원본 소스 내용을 복사하여 이전 예제에서 만든 sample.txt파일에 내용을 넣어보자



=============================코드=============================

public static void main(String[] args) throws Exception {
		
		
	// 원본 소스 파일 경로
		Reader fr = new FileReader("C:\\NCS\\Workspace(java)\\Ch11_File_IO\\src\\goott\\FileIO_05.java");
		
	// 원본 소스 파일이 복사되어 저장될 파일 경로
		Writer fw = new FileWriter("C:\\test\\sample\\sample.txt");
		
		while(true) {
			
			int readByte = fr.read();
			
			if(readByte == -1) {
				break;
			}
			
			fw.write(readByte);
		}
		
	// 입출력 객체 닫기
		fw.close();  fr.close();
		System.out.println("파일 소스 복사 완료!!");
		
	}

=============================실행=============================

sameple.txt 파일에 내용이 그대로 복사된 것을 확인!






listFiles()

: 디렉토리에 포함된 파일 및 서브 디렉토리 목록 전부를 확인하여 File 객체 배열로 반환해주는 메서드



=============================코드=============================

public static void main(String[] args) {
		
		File temp = new File("C:/Windows/Temp");
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd a HH:mm");   // 월 : M, 분 : m, a : 오전오후
		
		File[] contents = temp.listFiles();     // File[]은 객체 배열
		
		System.out.println("이름 \t 형태 \t 크기 \t 날짜 \t 시간");
		System.out.println("-------------------------------------------------------------------------------");
		
		for(File file : contents) {
			
			if(!file.isDirectory()) {
				System.out.println(file.getName() + "\t" + file.length());
				
			}else {  // 파일이라면
				System.out.print("<DIR>\t" + file.getName());      // getName은 file의 이름
			}
			
		// lastModified는 마지막 수정 날짜 및 시간을 반환
			System.out.print(sdf.format(new Date(file.lastModified()))); 
			
			System.out.println();
		}

		

	}

=============================실행=============================

0개의 댓글