六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 88|回复: 0

创建文件夹及文件并拷贝文件

[复制链接]

升级  22%

23

主题

23

主题

23

主题

秀才

Rank: 2

积分
83
 楼主| 发表于 2013-1-15 02:18:03 | 显示全部楼层 |阅读模式
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();
}

    }
   
}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表