|
|
package org.sigsit.CreateFileUtil;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class CreateFileUtil {
/**
* @param destFileName 文件名
* @return 创建成功返回true,否则返回false
*/
public static boolean CreateFile(String destFileName) {
File file = new File(destFileName);
if (file.exists()) {
System.out.println("创建文件" + destFileName + "失败,目标文件已存在!");
return false;
}
if (destFileName.endsWith(File.separator)) {
System.out.println("创建文件" + destFileName + "失败,目标不能是目录!");
return false;
}
if (!file.getParentFile().exists()) {
System.out.println("目标文件所在路径不存在,准备创建。。。");
if (!file.getParentFile().mkdirs()) {
System.out.println("创建目录文件所在的目录失败!");
return false;
}
}
// 创建目标文件
try {
if (file.createNewFile()) {
System.out.println("创建文件" + destFileName + "成功!");
return true;
} else {
System.out.println("创建文件" + destFileName + "失败!");
return false;
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("创建文件" + destFileName + "失败!");
return false;
}
}
public void copyTextFile(String inFilename, String outFilename)throws IOException {
// 先根据输入/输出文件生成相应的输入/输出流
FileInputStream is = new FileInputStream(inFilename);
FileOutputStream os = new FileOutputStream(outFilename);
copyStream(is, os); // 用 copyStream 拷贝内容
is.close(); // is 是在这里打开的,所以需要关闭
os.close(); // os 是在这里打开的,所以需要关闭
}
private void copyStream(FileInputStream is, FileOutputStream os)throws IOException {
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
PrintWriter writer = new PrintWriter(new OutputStreamWriter(os));
line = reader.readLine();
while (line != null) {
writer.println(line);
line = reader.readLine();
}
writer.flush(); // 最后确定要把输出流中的东西都写出去了
// 这里不关闭 writer 是因为 os 是从外面传进来的
// 既然不是从这里打开的,也就不从这里关闭
// 如果关闭的 writer,封装在里面的 os 也就被关了
}
/**
* 创建目录
* @param destDirName 目标目录名
* @return 目录创建成功返回true,否则返回false
*/
public static boolean createDir(String destDirName) {
File dir = new File(destDirName);
if(dir.exists()) {
System.out.println("创建目录" + destDirName + "失败,目标目录已存在!");
return false;
}
if(!destDirName.endsWith(File.separator))
destDirName = destDirName + File.separator;
// 创建单个目录
if(dir.mkdirs()) {
System.out.println("创建目录" + destDirName + "成功!");
return true;
} else {
System.out.println("创建目录" + destDirName + "成功!");
return false;
}
}
public static void main(String[] args) {
// 创建目录
String dirName = "e:/ClientBuilderPlugin";
CreateFileUtil.createDir(dirName);
// 创建文件
String fileName1 = dirName + "/src/testFile.txt";
CreateFileUtil.CreateFile(fileName1);
String fileName2 = dirName + "/.setting/testFile.txt";
CreateFileUtil.CreateFile(fileName2);
String fileName3 = dirName+ "/.classpath";
CreateFileUtil.CreateFile(fileName3);
String fileName4 = dirName+ "/.project";
CreateFileUtil.CreateFile(fileName4);
CreateFileUtil test= new CreateFileUtil();
try {
test.copyTextFile("D:\\workspace\\PubSubClientBuilderPlugin\\.classpath", "E:\\ClientBuilderPlugin\\.classpath");
test.copyTextFile("D:\\workspace\\PubSubClientBuilderPlugin\\.project", "E:\\ClientBuilderPlugin\\.project");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} |
|