0. 객체 생성
File f1 = new File("d:/D_Other/sample.txt");
File f2 = new File("d:/D_Other/test.txt");
File f3 = new File("d:/D_Other");
.exists()
- 파일 존재 여부 확인 존재 true, 존재 안하면 false
if(f1.exists()) {
System.out.println(f1.getAbsolutePath() + " 은 존재합니다.");
}else {
System.out.println(f1.getAbsolutePath() + " 은 없는 파일 입니다");
}
.createNewFile()
- 파일 생성
if(f1.createNewFile()) {
System.out.println(f1.getAbsolutePath() + " 파일을 생성했습니다");
}else {
System.out.println(f1.getAbsolutePath() + " 파일이 이미 생성했습니다");
}
.listFiles()
- 폴더 안에 있는 디렉토리 파일객체 배열
File[] files = f3.listFiles();
for (File f : files) {
System.out.print(f.getName() + " => ");
//isFile() : 파일 여부 확인
if(f.isFile()) {
System.out.println("파일");
}else if(f.isDirectory()) {
System.out.println("디렉토리(폴더)");
}
}
list()
- 폴더안에 있는 파일이름만 String으로 바꿈
//list() : 폴더안에 있는 파일이름만 String으로 바꿈
String[] fileNames = f3.list();
for (String fileName : fileNames) {
System.out.println(fileName);
}
displayFileList()
- 지정된 디렉토리(폴더)에 포함된 파일 및 디렉토리 목록을 보여주기 위한 메서드
0. 객체생성
public static void main(String[] args) throws IOException {
displayFileList(new File("d:/D_Other"));
}
1. 메서드 생성
// 지정된 디렉토리(폴더)에 포함된 파일 및 디렉토리 목록을 보여주기 위한 메서드
public static void displayFileList(File dir) {
System.out.println("["+ dir.getAbsolutePath()+ "] 디렉토리의 내용");
//디렉토리 안의 모든 파일 목록을 가져온다.
File[] files = dir.listFiles();
//하위 디렉토리의 인덱스 정보를 저장하기 위한 List 객체 생성
List<Integer> subDirIndexList = new ArrayList<Integer>();
// 날짜 정보를 출력하기 위한 포맷터 객체 생성하기
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd a hh:mm");
for (int i = 0; i<files.length; i++) {
String attr = ""; // 파일의 속성정보(읽기, 쓰기, 숨김파일 여부, 디렉토리 구분)
String size = ""; // 파일 크기
if(files[i].isDirectory()) {
attr = "<DIR>";
subDirIndexList.add(i);
}else {
size = files[i].length() + "";
//canRead() : 읽을 수 있는 권한이 있는지 확인
attr = files[i].canRead() ? "R" : " ";
//canWrite() : 수정 할수 있는 권한이 있는지
attr += files[i].canWrite() ? "W" : " ";
//isHidden() : 숨김 파일 확인
attr += files[i].isHidden() ? "H" : " ";
}
//예시) attr = RW_;
//%숫자s: 숫자만큼 지정
//%5s : 5개의 포맷지정 우측정렬
//%-5s : 5개의 포맷지정 좌측정렬
System.out.printf("%s %-5s %12s %s\n", sdf.format(new Date(files[i].lastModified())),
attr,size, files[i].getName());
}//for문 끝
더보기
1.1 displayFileList(File 파라미터)
객체생성할때 파라미터 안에 파일경로 적어둠
1.2 디렉토리 안의 모든 파일목록을 배열을 통해서 가져옴
File[] files = dir.listFiles();
① listFiles() : 폴더안에있는 디렉토리를 파일객체로 배열
② dir: d:/D_Other
③ dir.listFiles(); d:/D_Other 폴더 안에 있는 디렉토리를 파일객체로 배열 함
④ File[] files = dir.listFiles();
→ dir.listFiles();을 files(파일배열타입 )에 대입
1.3 for문
.isDirectory() : 폴더여부 있으면 truen 없으면 false
files.length : 파일이 총 개수
files[i].length() : 해당 되는 파일의 크기(몇 바이트)
files[i].canRead() : 해당 되는 파일이 읽을 수 있는 권한이 있는지 확인
files[i].canWrite() : 해당 되는 파일이 수정 할수 있는 권한이 있는지
files[i].isHidden() : 해당 되는 파일이 숨김 파일 확인
subDirIndexList.size() : 폴더 안의 하위폴더 개수
int dirCount = subDirIndexList.size(); // 폴더 안의 하위폴더 개수
int fileCount = files.length - dirCount; // 폴더 안의 파일 개수
System.out.println(fileCount + " 개의 파일, " + dirCount + " 개의 디렉토리");
System.out.println();
//재귀호출
for (int i = 0; i < subDirIndexList.size(); i++) {
//하위폴더의 내용들도 출력하기 위해
// 재귀호출을 한다.
displayFileList(files[subDirIndexList.get(i)]);
}
원본
더보기
package kr.or.ddit.basic;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class T02FileTest {
public static void main(String[] args) throws IOException {
File f1 = new File("d:/D_Other/sample.txt");
File f2 = new File("d:/D_Other/test.txt");
//exists() : 파일 존재 여부 확인 존재하면 true, 존재안하면 false
if(f1.exists()) {
System.out.println(f1.getAbsolutePath() + " 은 존재합니다.");
}else {
System.out.println(f1.getAbsolutePath() + " 은 없는 파일 입니다");
//createNewFile() : 파일생성
if(f1.createNewFile()) {
System.out.println(f1.getAbsolutePath() + " 파일을 생성했습니다");
}
}
if(f2.exists()) {
System.out.println(f2.getAbsolutePath() + " 은 존재합니다.");
}else {
System.out.println(f2.getAbsolutePath() + " 은 없는 파일 입니다");
}
System.out.println("----------------------------------");
File f3 = new File("d:/D_Other");
//listFiles() : 폴더안에있는 디렉토리를 파일객체로 배열
File[] files = f3.listFiles();
for (File f : files) {
System.out.print(f.getName() + " => ");
//isFile() : 파일 여부 확인
if(f.isFile()) {
System.out.println("파일");
}else if(f.isDirectory()) {
System.out.println("디렉토리(폴더)");
}
}
System.out.println("=================================");
//list() : 파일안에 있는 파일이름만 String으로 바꿈
String[] fileNames = f3.list();
for (String fileName : fileNames) {
System.out.println(fileName);
}
System.out.println("---------------------------------------");
System.out.println();
displayFileList(new File("d:/D_Other"));
}
// 지정된 디렉토리(폴더)에 포함된 파일 및 디렉토리 목록을 보여주기 위한 메서드
public static void displayFileList(File dir) {
System.out.println("["+ dir.getAbsolutePath()+ "] 디렉토리의 내용");
//디렉토리 안의 모든 파일 목록을 가져온다.
File[] files = dir.listFiles();
//하위 디렉토리의 인덱스 정보를 저장하기 위한 List 객체 생성
List<Integer> subDirIndexList = new ArrayList<Integer>();
// 날짜 정보를 출력하기 위한 포맷터 생성하기
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd a hh:mm");
for (int i = 0; i<files.length; i++) {
String attr = ""; // 파일의 속성정보(읽기, 쓰기, 숨김파일 여부, 디렉토리 구분)
String size = ""; // 파일 크기
if(files[i].isDirectory()) {
attr = "<DIR>";
subDirIndexList.add(i);
}else {
size = files[i].length() + "";
//canRead() : 읽을 수 있는 권한이 있는지 확인
attr = files[i].canRead() ? "R" : " ";
//canWrite() : 수정 할수 있는 권한이 있는지
attr += files[i].canWrite() ? "W" : " ";
//isHidden() : 숨김 파일 확인
attr += files[i].isHidden() ? "H" : " ";
}
//예시) attr = RW_;
//%숫자s: 숫자만큼 지정
//%5s : 5개의 포맷지정 우측정렬
//%-5s : 5개의 포맷지정 좌측정렬
System.out.printf("%s %-5s %12s %s\n", sdf.format(new Date(files[i].lastModified())),
attr,size, files[i].getName());
}//for문 끝
int dirCount = subDirIndexList.size(); // 폴더 안의 하위폴더 개수
int fileCount = files.length - dirCount; // 폴더 안의 파일 개수
System.out.println(fileCount + " 개의 파일, " + dirCount + " 개의 디렉토리");
System.out.println();
//재귀호출
for (int i = 0; i < subDirIndexList.size(); i++) {
//하위폴더의 내용들도 출력하기 위해
// 재귀호출을 한다.
displayFileList(files[subDirIndexList.get(i)]);
}
}
}
'JAVA > 수업' 카테고리의 다른 글
T04ByteArrayIOTest2 (0) | 2024.02.02 |
---|---|
T03ByteArrayIOTest(Stream) (0) | 2024.02.02 |
T01FileTest File 객체 (0) | 2024.01.31 |
T01Thread 싱글 스레드 프로그램 (0) | 2024.01.26 |
T05WildCard (1) | 2024.01.25 |