File 클래스는 파일이라는 개념을 추상화한 클래스입니다.
- 주요 생성자
File(String pathname) | pathname을 매개변수로 받아 파일을 생성 |
- 경로 표기법
위와 같은 test.txt 파일을 경로로 표시한다면?
표기법 | File 클래스 생성문 |
"C:\\Java\\test.txt" | File file1 = new File("C:\\Java\\test.txt"); |
"C:/Java/test.txt" | File file2 = new File("C:/Java/test.txt"); |
아래와 같이 java라는 디렉토리 안의 test.txt 파일이 있습니다.
- 클래스 생성 예시
// 파일에 대한 클래스 생성 1
File file1 = new File("C:\\Java\\test.txt");
// 파일에 대한 클래스 생성 2
File file2 = new File("C:/Java/test.txt");
// 파일에 대한 클래스 생성 3
// 이 파일은 java라는 디렉토리 안의 실제로 없는 파일
// 클래스를 생성한다고 해서 파일을 생성해주진 않음.
File file3 = new File("C:/Java/test1.txt");
// 디렉토리에 대한 클래스 생성 1
File dir1 = new File( "C:\\java");
// 디렉토리에 대한 클래스 생성 2
File dir2 = new File( "C:/java");
파일이 존재하는지 확인하는 exists() 메서드
해당 클래스가 디렉토리인지 확인하는 isDirectory() 메서드
읽기 전용인지? 숨긴 파일인지? canWrite(), isHidden() 메서드
- 메서드
// 파일이 존재하는 exists() 메서드
System.out.println( file1.exists() ); // true
System.out.println( dir1.exists() ); // true
System.out.println( file3.exists() ); // flase
// 해당 클래스가 실제로 디렉토리인지 isDirectory
System.out.println( file1.isDirectory() ); // false
System.out.println( dir1.isDirectory() ); // true
// 읽기 전용인지?, 숨긴 파일인지? canWrite, isHidden
System.out.println( file1.canWrite()); // true
System.out.println( file1.isHidden()); // false
- 경로 관련 메서드(실제로 파일이 생성되진 않았으며, exists() 메서드를 통해 확인)
// 현재 이클립스 프로젝트의 현재경로: "C:/java/java-workspace/FileEx01"
// 절대경로 표기
File dir1 = new File( "C:/java/java-workspace/FileEx01" );
File file1 = new File( "C:/java/java-workspace/FileEx01/test" );
// 상대경로 표기
File dir2 = new File( "." );
File file2 = new File( "./test.txt" );
System.out.println( file1.getName()); // test
System.out.println( file2.getName()); // test
System.out.println( file1.getParent() ); // C:\java\java-workspace\FileEx01
System.out.println( file2.getParent() ); // .
System.out.println( file1.getPath() ); // C:\java\java-workspace\FileEx01\test
System.out.println( file2.getPath() ); // .\test
System.out.println( file1.getAbsolutePath() ); // C:\java\java-workspace\FileEx01\test
System.out.println( file2.getAbsolutePath() ); // C:\java\java-workspace\FileEx01\.\test
try {
System.out.println( file1.getCanonicalPath() ); // C:\java\java-workspace\FileEx01\test
System.out.println( file2.getCanonicalPath() ); // C:\java\java-workspace\FileEx01\test
} catch (IOException e) {
e.printStackTrace();
}
System.out.println( dir1.exists() ); // 디렉토리는 존재함으로 true
System.out.println( file1.exists() ); // 파일이 실제로 없으므로 false
System.out.println( dir2.exists() ); // 디렉토리는 실제로 존재함으로 true
System.out.println( file2.exists() ); // 파일이 실제로 없으므로 false
아래와 같이 'FileEx01' 이라는 디렉토리 안의 appache-tomcat-9... 파일이 있습니다.
절대경로 및 상대경로로 2개의 클래스를 생성하고
파일이 존재하는지, 몇 byte인지 확인하고,
이를 Mbyte로 변환하고 언제 마지막으로 수정되었는지 확인
// 절대 경로
File file1 = new File("C:/java/java-workspace/FileEx01/apache-tomcat-9.0.65-windows-x64 (1).zip");
// 상대 경로
File file2 = new File("./apache-tomcat-9.0.65-windows-x64 (1).zip");
System.out.println( file1.exists() ); // true
System.out.println( file2.exists() ); // true
// 기타 속성
// 파일 크기(length) -> byte로 표기됨.
System.out.println( file2.length() + "Byte"); // 12849489Byte
// 만약 byte -> Mbyte로 변환하고 싶다면?
System.out.println( file1.length() / (1024 * 1024) + "Mbyte"); // 12Mbyte
// lastModified() -> timestamp로 표기되어서 출력 -> Data 클래스로 생성 후 toString() 메서드 호출
System.out.println( new Date(file2.lastModified()).toLocaleString()); // 2022. 10. 13. 오전 10:30:46
// 디렉토리 내부의 디렉토리나 파일이름 목록
// list : String[]
// listFiles : file[]
// File 클래스 생성
File file = new File("C:/Java");
String[] lists = file.list();
//디렉토리 안 목록을 출력
System.out.println( "====Arrays.toString() 메서드====");
System.out.println( Arrays.toString(lists) );
System.out.println( "\n" + "====list는 String[]====");
for( String list : lists ) {
System.out.println( list );
}
System.out.println("\n" + "====listFiles은 file[]====");
File[] ListFiles = file.listFiles();
for( File listFile : ListFiles ) {
System.out.println( listFile );
}
- mkdir() : 디렉토리 생성
- renameTo() : 이름 변경
- delete : 디렉토리 삭제
- createNewFile() : 디렉토리 안 클래스 생성
mkdir() : 디렉토리 생성
// File 클래스 생성
File file1 = new File( "C:/Java/dir1" );
File file2 = new File( "C:/Java/dir2" );
// 디렉토리 생성
file1.mkdir();
file2.mkdir();
renameTo() : 이름 변경
// File 클래스 생성
File file1 = new File( "C:/Java/dir1" );
File file2 = new File( "C:/Java/dir2" );
File file3 = new File( "C:/Java/dir3" );
// 디렉토리 생성
file1.mkdir();
file2.mkdir();
// 디렉토리 이름 변경
file1.renameTo(file3);
createNewFile() : 디렉토리 안 클래스 생성
File file4 = new File( "C:/Java", "test1.txt" );
File file5 = new File( "C:/Java", "test2.txt" );
'Java' 카테고리의 다른 글
[Java] 스트림(Stream) / 기반 스트림과 보조 스트림 / 바이트 단위 스트림과 문자 단위 스트림 / 입력 스트림과 출력 스트림 (0) | 2022.10.13 |
---|---|
[Java] File 클래스(2) (0) | 2022.10.13 |
[Java]컬랙션 정리 (0) | 2022.10.12 |
[Java] 입력받은 정수를 배열로 저장하기 / charAt(int i) - '0' / 문자를 정수형으로 / 정수를 배열로 바꾸기 (0) | 2022.10.10 |
[Java] 시간과 날짜 클래스(LocalDate, LocalDateTime,LocalTme) (0) | 2022.10.10 |
댓글