您的位置:首页 > 编程语言 > Java开发

java读取文件夹中文件,并复制内容到另一个文件中

2018-01-23 13:37 330 查看
package test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

public class test {

public static List<File> getFiles(String path){
File root = new File(path);
List<File> files = new ArrayList<File>();
if(!root.isDirectory()){
files.add(root);
}else{
File[] subFiles = root.listFiles();
for(File f : subFiles){
files.addAll(getFiles(f.getAbsolutePath()));
}
}
return files;
}

public static void main(String[] args) throws IOException {
List<File> files = getFiles("F:\\需要复制的文件夹");
//写入文件,覆盖
File file=new File("G:\\被写入的文件.txt");
OutputStream out=new FileOutputStream(file);
StringBuffer sb = new StringBuffer();
for(File f : files){
String name = f.getName();
/**
* 注意,本代码只复制html css js 文件的内容,如有需要请自行修改
*/
if (f.isFile() && name.endsWith(".html")|| name.endsWith(".css")|| name.endsWith(".js")) {
// 以字节流方法读取文件
FileInputStream fis = null;
try {
fis = new FileInputStream(f);
// 设置一个,每次 装载信息的容器
byte[] buf = new byte[1024];
// 开始读取数据
int len = 0;// 每次读取到的数据的长度
while ((len = fis.read(buf)) != -1) {// len值为-1时,表示没有数据了
// append方法往sb对象里面添加数据
sb.append(new String(buf, 0, len, "utf-8"));
}
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("文件不存在!");
}

}
byte b[]=sb.toString().getBytes();
out.write(b);
out.close();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐