Java에서 디렉토리를 지정할 수있는 Java의 방법이 있으며 전체 파일을 하나씩 읽습니다.폴더의 전체 파일 읽기
그렇지 않으면 Java에서 정규 표현식 파일을 읽는 방법이 있습니까? 그렇다면 모든 gh001_12312 gh002_12312, gh003_12911, gh004_22222, gh005_xxxxx로 시작하는 폴더의 모든 파일 등
Java에서 디렉토리를 지정할 수있는 Java의 방법이 있으며 전체 파일을 하나씩 읽습니다.폴더의 전체 파일 읽기
그렇지 않으면 Java에서 정규 표현식 파일을 읽는 방법이 있습니까? 그렇다면 모든 gh001_12312 gh002_12312, gh003_12911, gh004_22222, gh005_xxxxx로 시작하는 폴더의 모든 파일 등
표준 자바 라이브러리 File#listFiles 통해 디렉토리에 File
요소들의 어레이를 얻는 방법을 제공한다. 기본적 :
File theDirectory = new File("/home/example");
File[] children = theDirectory.listFiles();
는 또한리스트에 리턴 요소 치기 위해 사용될 수있는 필터가 지정 될 수있게하는 오버 방법이있다.
File theDirectory = new File("/home/example");
File[] children = theDirectory.listFiles(new FileFilter(){
public boolean accept(File file) {
if (file.isFile()) {
//Check other conditions
return true;
}
return false;
}
});
당신은 파일 이름에 따라 약간의 필터링을 수행 할 경우
뿐만 아니라 다음 String, Pattern 및 Matcher를 보라. 특정 이름 지정 규칙을 따르는 파일 또는 파일 만있을 것이라는 것을 알고있는 경우 파일 이름을 나타내는 문자열 만 제공하는File.listFiles(FilenameFilter)
옵션도 있습니다.
에는 행 단위로 입력해야하는 input.readLine()을 수행하는 대신 BufferedReader를 전체 문자열로 읽는 방법이 있습니까? – aherlambang
@EquinoX, 내가 아는 것은 아닙니다. –
당신은 commons-io에서 아래 방법의 조합을 사용할 수 있습니다. 첫 번째 방법은 특정 확장자와 일치하는 반복적으로 디렉토리의 모든 파일을 반복하는 옵션을 제공합니다 (직접 필터를 제공 할 수있는 또 다른 오버로드 된 메서드가 있음). 두 번째 메서드는 파일의 전체 내용을 String 객체로 읽습니다.
Iterator<File> iterateFiles(File directory,
String[] extensions,
boolean recursive)
String readFileToString(File file)
throws IOException
내가 그 commons-io를 사용하고 싶지 않다면 – aherlambang
File (isDirectory(), listFiles()), FileNameFilter 및 BufferedReader의 도움을 받아이 작업을 수행 할 수도 있습니다. /www.exampledepot.com/egs/java.io/GetFiles.html –
여기 @ 팀 벤더에서 코드를 재사용하고 있습니다 :
먼저 @ 팀 벤더 같이 필요한 모든 파일의 목록을 (완전성을 위해 다시 여기에 표시). 제 3 자 라이브러리가 필요 없습니다.
File theDirectory = new File("/home/example");
File[] children = theDirectory.listFiles(new FileFilter(){
public boolean accept(File file) {
if (file.isFile()) {
//Check other conditions
return true;
}
return false;
}
});
지금 행동 아주 지껄,
public StringBuilder readReplaceFile(File f) throws Exception
{
FileInputStream fis = new FileInputStream(f);
FileChannel fc = fis.getChannel();
int sz = (int)fc.size();
MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, sz);
CharBuffer cb = decoder.decode(bb);
StringBuilder outBuffer = new StringBuilder(cb);
fc.close();
return outBuffer;
}
희망이 도움
앤드류 톰슨이 배열을 반복하고 (
br.readLine()
없이) 하나의 이동에 파일 읽기java.nio
API를 사용합니다. –때로는 이전에 몰랐던 몇 가지 기능이 있습니다.하지만 다른 기능은 – aherlambang
에 동의합니다. 개인적으로 필자는 @Pangea가 언급 한 API에 대해 잘 알지 못했고 매우 재미 있다고 생각했습니다. –