將指定目錄下的sql文件名寫入到txt文件中

    前段時間須要把文件夾中全部sql文件整到一個文檔中,進行MySQL數據庫的批量導入用,因此寫了下面的小程序。 java

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class GetLib {
	String temp = "";

	public static void main(String args[]) {
		GetLib fm = new GetLib();
		String[] files = fm
				.serachFiles("E:/VP_WorkSpace/VP/VisualProject39A/1_執行庫/03_系統設計/數據庫 for mysql");
		fm.writeFile("E:/01.txt", files);
	}

	/**
	 * 取出指定目錄及子目錄下全部的SQL文件
	 * 
	 * @param dir
	 *            檢索sql文件的目錄
	 * @return
	 */
	private String[] serachFiles(String dir) {
		File root = new File(dir);
		File[] filesOrDirs = root.listFiles();

		for (int i = 0; i < filesOrDirs.length; i++) {
			if (filesOrDirs[i].isDirectory()) {
				serachFiles(filesOrDirs[i].getAbsolutePath());
			} else {
				String[] nameArr = filesOrDirs[i].getName().split("\\.");
				if (nameArr != null && nameArr.length > 0
						&& nameArr[nameArr.length - 1].equals("sql")) {
					temp += filesOrDirs[i].getPath() + ",";
				}
			}
		}

		return temp.split(",");
	}

	/**
	 * 將數據中的內容寫入到指定文件中,每一個數據元素是一行
	 * 
	 * @param path
	 *            寫入文件的路徑
	 * @param content
	 *            寫入文件的內容
	 */
	private void writeFile(String path, String[] content) {
		try {
			File f = new File(path);
			if (f.exists()) {
				System.out.println("文件存在,開始寫入...");
			} else {
				System.out.println("文件不存在,正在建立...");
				if (f.createNewFile()) {
					System.out.println("文件建立成功,開始寫入...");
				} else {
					System.out.println("文件建立失敗!");
				}
			}
			BufferedWriter writer = new BufferedWriter(new FileWriter(f,true));
			for (String s : content) {
				//寫入數據
				writer.write("source " + s);
				//換行
				writer.newLine();
			}
			writer.close();
			System.out.println("寫入完畢!");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
相關文章
相關標籤/搜索