关闭

使用java IO实现指定后缀的文件合并为一个文件

标签: javaio
334人阅读 评论(0) 收藏 举报
分类:
public class Combine {

private static final String FILE_SUFFIX = ".txt";//要合并的文件的后缀
private static final String COMBINE_FILE_PATH = "/file"; //要合并的文件所在的src路径
private static final String COMBINE_FILE_NAME = "combine" + FILE_SUFFIX;//合并后的文件的名称

public static void main(String[] args) {
BufferedReader br = null;
BufferedWriter bw = null;
try {
/*
* 取出所有要合并的文件
*/
String _file_dir_path = Combine.class.getResource(COMBINE_FILE_PATH).getPath();
File _dist_file = new File(_file_dir_path + File.separator + COMBINE_FILE_NAME); //目标文件
File _file_dir = new File(_file_dir_path);
File[] _fArr  = _file_dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
if(name.endsWith(FILE_SUFFIX)){
return true;
}
return false;
}
});


if(!_dist_file.exists()){
_dist_file.createNewFile();
}


ByteArrayOutputStream baos = new ByteArrayOutputStream();
if(_fArr != null && _fArr.length > 0 ){
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(_dist_file),"utf-8"));
for (File f : _fArr) {
br = new BufferedReader(new InputStreamReader(new FileInputStream(f),"utf-8"));
String _line;
while((_line = br.readLine())!=null){
baos.write(_line.getBytes());
baos.write("\r\n".getBytes());
}
bw.write(baos.toString());
bw.flush();
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(br != null){
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

if(bw != null){
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3859次
    • 积分:143
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类