import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
//p 471 file예제
public class FileTest1 {
public static class ImageNameFilter implements FilenameFilter{
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".jpg");
}
}
// File 클래스의 메소드 사용하기
public static void main(String[] args) {
System.out.println("C: 드라이브의 전체 파일 출력");
File file = new File("C:\\");
//(윈도우용 경로 설정) 파일객체 생성 > c드라이브 경로 이용 : \\ 사용
// pathname에 위치한 파일/디렉토리 들의 정보(디렉토리 인지? 파일 이름들..) 들을 모두 가져와 file에 넣음
String [] files = file.list(); // C드라이브 안에 존재하는 모든 (위에 file) 파일이름을 String[] 타입으로 얻어옴
for(String fileName : files) {
File subFile = new File(file, fileName);
//pathname(file) 에 속한 파일이름 fileName 을 생성자 파라미터로 제공하여
//한 개의 파일 객체를 메모리에 적재한다
if (subFile.isDirectory()) { // << 디렉토리 일경우
System.out.println("디렉터리 이름 : " + fileName);
} else { // << 아닐경우 = file
System.out.println("파일이름 : " + fileName + ", 파일 크기 : " + subFile.length()
+ "byte" + ", 파일 경로 : " + subFile.getAbsolutePath());
}
}
System.out.println("C: 드라이브의 이미지 파일만 출력");
String [] imageFiles = file.list(new ImageNameFilter()); //jpg로 끝나는 파일 이름 String[] 으로
for(String fileName:imageFiles){
File subFile = new File(file,fileName);
System.out.println("파일 이름 : " +fileName + ", 파일 경로 : "
+ subFile.getAbsolutePath());
}
File makeFile = new File("C:\\javaExample\\JavaCorePractice\\FileExample\\test\\testFile2.txt");
try{
makeFile.createNewFile();
//java 언어에서는 일부 객체의 메소드에 한해 강제적인 예외처리를 요구 (파일접근, db관련...)
//java 시스템 바깥의 시스템에 접근해서 뭔가 하고싶을때
}catch (IOException e){ //파일 처리의 경우 담당하는 예외
e.printStackTrace();
}
if(makeFile.exists()){
System.out.println("makeFile이 생성됨됨");
}
File renameFile = new File("C:\\javaExample\\JavaCorePractice\\FileExample\\test\\testFile.txt");
makeFile.renameTo(renameFile);
if(renameFile.exists()){
System.out.println("makeFile의 이름이 변경됨");
}
if(renameFile.delete()){
System.out.println("renameFile이 제거됨");
}
}
}
'연습문제 > JAVA' 카테고리의 다른 글
JAVA - FileExample3번 (0) | 2021.08.13 |
---|---|
JAVA - FileExample2번 (0) | 2021.08.13 |
Java InterfacePractice2 (인터페이스 예제2 - 0811) (0) | 2021.08.11 |
Java ExtendsPractice(상속예제 0811) (0) | 2021.08.11 |
Java 와 DB 연동-2 내가 참고할 코드 (0806) / github 커맨드 (0) | 2021.08.06 |