This give you some example for scanning files with specified string or specified file type from your pointed folder directory.You can scan the files and copy them to a temporary folder, also you can merge them together into one file.package com_2013;import java.io.*; import java.util.*;public class FileScan { static String fromdir = "Input the folder directory where you need to scan the files."; static String todir = "Input the folder directory where you need copy the scanned files to."; static String findstr = "Input the string that is specified scanned condition."; static String targetFileName = "D:/targetFileName.sql"; static String filetype = ".sql"; static int filenum = 1; static File outFile; static RandomAccessFile outt; public static void main(String[] args) {
File filedir = new File(fromdir);
FileScan FS = new FileScan();
// Function 1: Scan the files and copy them to a folder. // File toDir = new File(todir); // if (!toDir.isDirectory()) { // toDir.mkdirs(); // } // FS.fileScan(filedir);
// Function 2: Scan the files and merge them into one file. try { outFile = new File(targetFileName); if (!outFile.exists()) outFile.createNewFile(); outt = new RandomAccessFile(outFile,"rw"); FS.fileScanUnite(filedir); outt.close(); } catch (Exception e) { e.printStackTrace(); }
}
public FileScan() { }
/** * Scan the specified files from the specified folder and unite them together into one file. * @param fileDir */ public void fileScanUnite(File fileDir) throws Exception { File[] file = fileDir.listFiles(); for(int i = 0; i < file.length; i ++) { File subfile = file[i]; if (subfile.isDirectory()) { fileScanUnite(subfile); }else { String temp = subfile.getName().toUpperCase(); if ( temp.indexOf(findstr.toUpperCase())>0 && temp.endsWith(filetype.toUpperCase()) ) { RandomAccessFile inn = new RandomAccessFile(subfile,"r"); int c; while ((c=inn.read()) != -1) outt.write(c);