Java File 입출력 관련 우혁이 아빠 2016. 7. 22. 13:43 import java.io.File; import java.io.FilenameFilter; import java.util.Collection; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.RegexFileFilter; public class MainForFileTest { public static void main(String[] args) { File directory = new File("C:\\listFiles"); // aaaaaa.txt // F01_20160701.txt // F01_20160702.txt // F01_20160703.txt // F01_abcdefg.txt // 한글이름.txt /* * STEP. 1 * * 대문자영문시작_숫자만두자리_언더바_숫자만하나이상_.txt 인 * 파일 리스트 */ FilenameFilter filenameFilter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.matches("^[A-Z][0-9]{2}_[0-9]+.txt"); } }; File[] listFiles = directory.listFiles(filenameFilter); for (File file : listFiles) { System.out.println(file.getName()); // F01_20160701.txt // F01_20160702.txt // F01_20160703.txt } System.out.println(); System.out.println("-----------------------------------------"); System.out.println(); /* * STEP. 2 * * 대문자영문시작_숫자만두자리_언더바_아무문자들_.txt로끝나는 * 파일 리스트 */ FilenameFilter filenameFilter2 = new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.matches("^([A-Z][0-9]{2}_)(.+)(.txt)$"); } }; File[] listFiles2 = directory.listFiles(filenameFilter2); for (File file : listFiles2) { System.out.println(file.getName()); // F01_20160701.txt // F01_20160702.txt // F01_20160703.txt // F01_abcdefg.txt } System.out.println(); System.out.println("-----------------------------------------"); System.out.println(); RegexFileFilter rff = new RegexFileFilter("^([A-Z][0-9]{2}_)(.+)(.txt)$"); Collection<File> listFiles3 = FileUtils.listFiles(directory, rff, null); for (File file : listFiles3) { System.out.println(file.getName()); // F01_20160701.txt // F01_20160702.txt // F01_20160703.txt // F01_abcdefg.txt } } } import java.io.File; import java.io.FilenameFilter; import java.util.Collection; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.FileFilterUtils; import org.apache.commons.io.filefilter.IOFileFilter; public class FileUtilsTest { public static void main(String[] args) { File directory = new File("C:\\listFiles"); // aaaaaa.txt // F01_20160701.txt // F01_20160702.txt // F01_20160703.txt // F01_abcdefg.txt // 한글이름.txt IOFileFilter fileFilter = FileFilterUtils.trueFileFilter(); Collection<File> listFiles = FileUtils.listFiles(directory, fileFilter, null); for (File file : listFiles) { System.out.println(file.getName()); } System.out.println(); System.out.println("-----------------------------------------"); System.out.println(); IOFileFilter fileFilter2 = FileFilterUtils.prefixFileFilter("F01"); Collection<File> listFiles2 = FileUtils.listFiles(directory, fileFilter2, null); for (File file : listFiles2) { System.out.println(file.getName()); } System.out.println(); System.out.println("-----------------------------------------"); System.out.println(); IOFileFilter fileFilter3 = FileFilterUtils.and( FileFilterUtils.prefixFileFilter("F01"), // FileFilterUtils.nameFileFilter("201607"), FileFilterUtils.suffixFileFilter("txt")); Collection<File> listFiles3 = FileUtils.listFiles(directory, fileFilter3, null); for (File file : listFiles3) { System.out.println(file.getName()); } System.out.println(); System.out.println("-----------------------------------------"); System.out.println(); FilenameFilter filenameFilter = new FilenameFilter() { public boolean accept(File dir, String name) { return name.matches("^[A-Z][0-9]{2}_[0-9]+.txt"); } }; IOFileFilter fileFilter4 = FileFilterUtils.asFileFilter(filenameFilter); Collection<File> listFiles4 = FileUtils.listFiles(directory, fileFilter4, null); for (File file : listFiles4) { System.out.println(file.getName()); } System.out.println(); System.out.println("-----------------------------------------"); System.out.println(); } } 저작자표시