文档章节

Java以流的方式将指定文件夹里的.txt文件全部复制到另一文件夹,并删除原文件夹中所有.txt文件

o
 osc_4nmshwhm
发布于 2018/08/07 09:38
字数 465
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;

/**
 * 将指定文件夹里的.txt文件全部复制到另一文件夹,并删除原文件夹中所有.txt文件
 * @author jinghui.wu
 *
 */
public class TxtFilesCopyTest {
	
	/**
	 * 获取指定路径下所有.txt文件
	 * @param oldPath	指定的原文件夹路径
	 * @param newPath	指定的新文件夹路径
	 * @return	结果
	 */
	public String getAllFilesByPath(String oldPath, String newPath) {
		List<File> files = new ArrayList<File>();
		// 获取指定路径的文件夹
		File file = new File(oldPath);
		// 获取文件夹下所有文件
		File[] tempList = file.listFiles();
		if (tempList == null || tempList.length == 0) {
        	return "未找到文件!";
		}
		for (File f : tempList) {
    		if (f.isFile()){	// 判断是否为文件
    			// 获取文件名
				String fileName = f.getName();
				// 通过切割获取文件后缀名
				String str = fileName.substring(fileName.indexOf("."), fileName.length()).toLowerCase();
				if (str.equals(".txt")) {
					files.add(f);
				}
    		}
		}
		
		copyAllFiles(files, newPath);
		return "复制成功!";
	}
	
	/**
	 * 复制所有.txt文件到另一文件夹
	 * @param files	要复制的.txt文件集合
	 * @param newPath 新文件夹路径
	 */
	private void copyAllFiles(List<File> files, String newPath) {
		// 根据给定路径获取文件夹
		File folder = new File(newPath);
		// 判断是否存在
        if (!folder.exists()) {
        	// 指定文件夹不存在,新建
        	folder.mkdirs();
        }
        for (File file : files) {
        	try {
				/* 读入TXT文件 */ 
				InputStreamReader reader = new InputStreamReader(new FileInputStream(file), "UTF-8");
				BufferedReader br = new BufferedReader(reader);
				String line = "";
				List<String> lineList = new ArrayList<>();
				while ((line = br.readLine()) != null) {	// 判断本行是否为null
					lineList.add(line);	// 将每行内容放入集合中
				}
				br.close();
				
				/* 写入Txt文件 */
				File writeFile = new File(newPath + "/" + file.getName());
				writeFile.createNewFile();
				//BufferedWriter bw = new BufferedWriter(new FileWriter(writeFile));
				// FileWriter没有setEncoding方法来设置编码级,会出现中文乱码问题,所以换成下面方法
				BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (new FileOutputStream (writeFile,true),"UTF-8"));
				for (int j = 0; j < lineList.size(); j++) {
					bw.write(lineList.get(j));
					bw.write("\r\n");	//换行
				}
				bw.flush();
				bw.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
        	
        	// 删除原文件夹中已复制过的.txt文件
			file.delete();
		}
	}
}

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

PO模式你会吗?自动化测试PO模式分层如何实现?

一、什么是PO模式 全称:page object model 简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePage:封装一些最基础的s...

osc_s4e6jr85
29分钟前
5
0
lodash compact & concat

前置 本篇随笔包含 _.compact 和 _.concat 及其依赖的工具函数。 你可能需要一些 JavaScript 基础知识才能看懂一些没有注释的细节。 compact _.compact(array) 创建一个新数组,包含原数组中...

osc_xu7n68ts
30分钟前
3
0
Django快速开发实践:Drf框架和xadmin配置指北

步骤 既然是快速开发,那废话不多说,直接说步骤: 安装Djagno 安装Django Rest Framework 定义models 定义Rest framework的serializers 定义Rest framework的viewsets 配置Rest framework的...

osc_qo2uprmb
31分钟前
7
0
SQL注入原理及代码分析(一)

前言 我们都知道,学安全,懂SQL注入是重中之重,因为即使是现在SQL注入漏洞依然存在,只是相对于之前现在挖SQL注入变的困难了。而且知识点比较多,所以在这里总结一下。通过构造有缺陷的代码...

osc_axrkis5i
33分钟前
11
0
Tomcat启动流程简析

Tomcat是一款我们平时开发过程中最常用到的Servlet容器。本系列博客会记录Tomcat的整体架构、主要组件、IO线程模型、请求在Tomcat内部的流转过程以及一些Tomcat调优的相关知识。 力求达到以下...

osc_5c67s863
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部