将指定目录下的sql文件名写入到txt文件中

原创
2013/03/28 16:21
阅读数 338

    前段时间需要把文件夹中所有sql文件整到一个文档中,进行MySQL数据库的批量导入用,所以写了下面的小程序。

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();
		}
	}
}
展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部