반응형
    
    
    
  
		                                        Notice
		                                        
										
                                    
                                    
                                        Recent Posts
                                        
                                    
                                    
                                        Recent Comments
                                        
                                    
                                    
                                        Link
                                        
                                    
                                | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | 
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | 
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | 
| 26 | 27 | 28 | 29 | 30 | 31 | 
                                        Tags
                                        
                                    
                                    - HashMap
- CSS
- Visual Studio Code
- javascript
- date
- map
- 배열
- IntelliJ
- Java
- input
- 인텔리제이
- 자바
- CMD
- json
- js
- html
- table
- Button
- ArrayList
- Eclipse
- 문자열
- list
- string
- 정규식
- 이클립스
- Array
- 자바스크립트
- vscode
- replace
- 이탈리아
                                        Archives
                                        
                                    
                                    - Today
- Total
어제 오늘 내일
[Java] 파일의 최종 수정일자 조회 본문
Java API를 이용하여, 파일을 다루는 방법을 알아보고 있습니다.
[Java] 텍스트 파일 읽기 ( FileReader, BufferedReader, Scanner, Files )
[Java] 파일 생성하는 3가지 방법 (File, FileOutputStream, Files)
이번에는, 파일의 최종 수정일자를 조회하고, 변경하는 방법을 소개합니다.
- java.nio.file.Files의 attribute 읽기
- java.nio.file.Files.getLastModifiedTime()
- java.io.File의 lastModified()
1. java.nio.file.Files의 attribute 읽기
파일의 최종 수정일자는 java.nio.files.Files 클래스의 attribute를 읽어서 구할 수 있습니다.
파일의 attribute를 읽는 방법은
이전의 포스팅인 '파일 또는 디렉토리 생성일자 구하기' 포스팅을 참조하세요.
예제 1. Files.getAttribute()
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileTime;
public class GetModifyDate {
    public static void main(String[] args) {
        Path file = Paths.get("d:\\example\\text_file.txt");
        try {
            // 파일 생성일자/수정일자 찾기
            FileTime creationTime = (FileTime) Files.getAttribute(file, "creationTime");
            FileTime lastModifiedTime = (FileTime) Files.getAttribute(file, "lastModifiedTime");
            // 결과 출력
            System.out.println("최초생성일자 : " + creationTime);
            System.out.println("최종수정일자 : " + lastModifiedTime);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
예제 2. Files.readAttributes()
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileTime;
import java.util.Map;
public class GetModifyDate {
    public static void main(String[] args) {
        Path file = Paths.get("d:\\example\\text_file.txt");
        try {
            // 파일 속성 찾기
            Map<String, Object> attributes = Files.readAttributes(file, "*");
            FileTime creationTime = (FileTime) attributes.get("creationTime");
            FileTime lastModifiedTime = (FileTime) attributes.get("lastModifiedTime");
            // 결과 출력
            System.out.println("생성시간 : " + creationTime);
            System.out.println("최종변경시간 : " + lastModifiedTime);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
예제 3. Files.readAttributes()
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;
public class GetModifyDate {
    public static void main(String[] args) {
        Path file = Paths.get("d:\\example\\text_file.txt");
        try {
            // 파일 생성일자/수정일자 찾기
            BasicFileAttributes basicFileAttributes 
                    = Files.readAttributes(file, BasicFileAttributes.class);
                
            FileTime creationTime = basicFileAttributes.creationTime();
            FileTime lastModifiedTime = basicFileAttributes.lastModifiedTime();
            // 결과 출력
            System.out.println("최초생성일자 : " + creationTime);
            System.out.println("최종수정일자 : " + lastModifiedTime);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
2. java.nio.file.Files.getLastModifiedTime()
public static FileTime getLastModifiedTime(Path path, LinkOption... options)
Files 클래스는 간단하게 최종 수정일자를 가져올 수 있는 메소드를 제공합니다.
파라미터
- path
- file path
 
- options
- symbolic link를 처리하는 방법.
- default : 아무것도 입력하지 않으면 default로 link의 최종 target 파일의 속성값을 읽습니다.
- NOFOLLOW_LINKS : symbolic link의 target 속성이 아닌, symbolic link의 속성을 읽습니다.
 
예제
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileTime;
public class GetModifyDate {
    public static void main(String[] args) {
        Path file = Paths.get("d:\\example\\text_file.txt");
        try {
            // 파일 수정일자 찾기
            FileTime lastModifiedTime = Files.getLastModifiedTime(file);
            
            // 결과 출력
            System.out.println("최종수정일자 : " + lastModifiedTime);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
3. java.io.File의 lastModified()
public long lastModified()
File 클래스의 lastModified() 메소드를 이용하면,
파일의 최종 수정일자를 long 타입(밀리세컨드)으로 얻을 수 있습니다.
예제
import java.io.File;
import java.util.Date;
public class GetModifyDate {
    public static void main(String[] args) {
        File file = new File("d:\\example\\text_file.txt");
        // 파일 수정일자 찾기
        long lastModifiedTime = file.lastModified();
        // 결과 출력
        System.out.println("최종수정일자(ms) : " + lastModifiedTime);  // 1622894132032
        System.out.println("최종수정일자(date) : " + new Date(lastModifiedTime));  // Sat Jun 05 20:55:32 KST 2021
    }
}new Date(lastModifiedTime);
File 클래스의 lastModified() 메소드는 밀리초 단위의 long 타입을 리턴합니다.
따라서, 밀리초를 날짜로 변환해주기 위해서 Date 클래스를 사용하였습니다.
파일의 최종 수정일자를 구하는 방법을 알아보았습니다.
반응형
    
    
    
  'IT > Java' 카테고리의 다른 글
| [Java] Text 파일 라인수 세기 (0) | 2021.06.06 | 
|---|---|
| [Java] 파일 최종수정일자 변경하기 (0) | 2021.06.05 | 
| [Java] 파일 또는 디렉토리 생성일자 구하기 (0) | 2021.05.31 | 
| [Java] 디렉토리 생성하기 (0) | 2021.05.30 | 
| [Java] 파일 사이즈 구하는 3가지 방법 (0) | 2021.05.30 | 
                              Comments