자바/입출력 IO
표준 입출력과 File: File(3)
백_곰
2022. 4. 28. 17:13
1-7. File을 이해하기 위한 예제(7)
: 해당 디렉토리에 입력된 문자열과 일치한 파일의 목록을 보여주는 예제이다.
package File;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Scanner;
public class Exercise007 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
if(input == null) {
System.out.println("USAGE : java FileEx7 pattern");
System.exit(0);
}
String currDir = System.getProperty("user.dir");
File dir = new File(currDir);
final String pattern =input;
// String[] list (FilenameFilter filter)
String[] files = dir.list(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.indexOf(pattern) != -1;
}
});
for(int i=0; i < files.length; i++) {
System.out.println(files[i]);
}
}
}
( 특정 조건에 맞는 파일의 목록을 얻기 위해 FilenameFilter를 구현해서 String[] list(FilenameFilter filter)를
사용했다. )
1-8. File을 이해하기 위한 예제(8)
: 확장자를 입력하면 해당되는 파일을 삭제하는 예제이다.
package File;
import java.io.File;
import java.util.Scanner;
public class Exercise008 {
static int deletedFiles = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
if(input == null) {
System.out.println("USAGE : java FileEx8 Extension");
System.exit(0);
}
String currDir = System.getProperty("user.dir");
File dir = new File(currDir);
String ext = "." + input;
delete(dir, ext);
System.out.println(deletedFiles + "개의 파일이 삭제되었습니다.");
} // end of main
public static void delete(File dir, String ext) {
File[] files = dir.listFiles();
for(int i=0; i < files.length; i++) {
if(files[i].isDirectory()) {
delete(files[i], ext);
} else {
String filename = files[i].getAbsolutePath();
if(filename.endsWith(ext)) {
System.out.print(filename);
if(files[i].delete()) {
System.out.println(" - 삭제 성공");
deletedFiles++;
} else {
System.out.println(" - 삭제 실패");
}
} // if(filename.endsWith(ext)) {
} // if(files[i].isDirectory()) {
} // for(int i=0; i < files.length; i++) {
} // end of delete
} // end of class
( 파일 삭제를 위해 delete()를 사용하였다. )
1-9. File을 이해하기 위한 예제(9)
: 파일 1.txt, 2.txt, 11.txt 등이 있다면, 1.txt 다음 2.txt가 와야 하는데, 윈도우에서는 11.txt가 다음에 나오므로, 이것을
해결하기 위해 001.txt, 002.txt, 011.txt 로 바꿔주는 예제이다.
package File;
import java.io.File;
import java.util.Scanner;
public class Exercise009 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
if(input == null) {
System.out.println("Usage: java FileEx9 DIRECTORY");
System.exit(0);
}
File dir = new File(input);
if(!dir.exists() || !dir.isDirectory()) {
System.out.println("유효하지 않은 디렉토리입니다.");
System.exit(0);
}
File[] list = dir.listFiles();
for (int i = 0; i < list.length; i++) {
String fileName = list[i].getName();
// 파일명
String newFileName = "0000" + fileName;
newFileName = newFileName.substring(newFileName.length() - 7);
list[i].renameTo(new File(dir, newFileName));
}
} // end of main
} // end of FileEx9 class
( 이름을 바꾸기 위해서 renameTo()를 사용하였다. )
다음장
표준 입출력과 File: File(4) (tistory.com)
표준 입출력과 File: File(4)
1-10. File을 이해하기 위한 예제(10) : 지정된 파일을 지정된 크기(KB)만큼 자르는 예제이다. package File; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInp..
kind-coding.tistory.com