□ 소스 파일 폴더 내에서 '특정 문자'를 가지고 있는 파일 추출하기
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import.java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
public class FileSearcher{
public static void main(String[] args) throws FileNotFoundException, IOException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
File inputFile = new File("C:/ClassSearcher.txt");
//입력 스트림 생성
FileReader file_reader = new FileReader(inputFile);
//입력 버퍼 생성
BufferedReader bufReader = new BufferedReader(file_reader);
String line = "";
String filePath = "C:/fileObject/src";
File dir = new File(filePath);
if(dir.exists() == false){
System.out.println("경로가 존재하지 않습니다.");
return;
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c:/result.txt")));
ArrayList<File> files = new ArrayList();
visitAllFiles(files, dir);
//line은 찾아야 하는 문자열
while(line = bufReader.readLine()) != null){
for(File f: files){
FileReader smartFileReader = new FileReader(f.getAbsoluteFile());
BufferedReader fileBufReader = new BufferedReader(smartFileReader);
Strint smartLine = "";
while(smartLine = fileBufReader.readLine()) != null){
if(smratLine.contains(line) == true){
String resultLine = line + "/" + f.getName() + "\n";
bw.write(resultLine);
}
}
}
System.out.println("Word: " + line);
}
System.out.println("WORK Finished");
//탐색한 파일을 하나씰 출력할 파일에 쓴다.
bw.flush();
bw.close();
}
/* 총 파일 수를 arraylist에 추가합니다.
* 만약 검색된 부분이 디렉토리라면 하위 폴더를 탐색합니다.
*/
public static void visitAllFiles(ArrayList files, File dir){
if(dir.isDirectory()){
File[] children = dir.listFiles();
for(File f : children){
//재귀 호출 사용
//하위 폴더 탐색 부분
visitAllFiles(files,f);
}
}else{
files.add(dir);
}
}
}
반응형
'■ 관심 사항 > □ 잡동사니' 카테고리의 다른 글
코스톨라니의 달걀 모델 (0) | 2020.07.25 |
---|---|
채권에 대한 이해하기 쉬운 설명 (0) | 2020.07.23 |
손실 회피 편향 (0) | 2020.07.11 |
부의 3요소 (부란 무엇인가?) (0) | 2020.07.07 |
통화정책과 재정정책 (0) | 2020.06.24 |