Java以流的方式将指定文件夹里的.txt文件全部复制到另一文件夹,并删除原文件夹中所有.txt文件
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();
}
}
}
Java以流的方式将指定文件夹里的.txt文件全部复制到另一文件夹,并删除原文件夹中所有.txt文件的更多相关文章
- java 通过流的方式读取本地图片并显示在jsp 页面上(类型以jpg、png等结尾的图片)
Java代码: File filePic = new File(path+"1-ab1.png"); if(filePic.exists()){ FileInputStream i ...
- java用流的方式加载图片
前端: <img ng-show="photo" class="vertical_b" id="photoImg" src=" ...
- 删除GitHub上项目中的某个文件
原文地址 https://www.jianshu.com/p/242412b43ca5 1.首先在本地中更新有该项目的最新包 即确保本地项目和git上的项目内容保持同步(git pull拉取项目代码) ...
- github 删除远程仓库项目中的任意文件夹
今天上传代码把不需要的push上去了.结果想删除那个不想要的怎么弄都不行.网上大部分都是把那个项目整个暴力删除.那可不行啊那么多都删除.下次上传不是要命啊! 试啊试终于解决了.顺便记录一下也帮助下需要 ...
- 使用python脚本批量删除阿里云oss中的mp4文件
#encoding:utf-8 ''' oss中有一些mp4文件需要删除,首先定位出这些文件放在txt文本中 然后通过python操作oss进行批量删除 ''' import oss2 auth = ...
- 【测试技术】ant在测试中的使用@文件以及目录的读写删和复制
ant其实就是一个java的打包工具,存在的时间已经很久了,很多同行在使用中可能就是用,对为什么要用它,能够怎么用没有更多的了解: ---------------------------------- ...
- Java:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- 五种方式让你在java中读取properties文件内容不再是难题
一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...
- 文件传输基础——Java IO流
一.文件的编码 package com.study.io; /** * 测试文件编码 */ public class EncodeDemo { /** * @param args * @throws ...
随机推荐
- 洛谷P1466 集合 Subset Sums_01背包水题
不多解释,适当刷刷水… Code: #include<cstdio> #include<algorithm> using namespace std; const int ma ...
- Vue学习之路第十七篇:全局过滤器的使用
1.过滤器 ①:Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方:插值表达式和 v-bind 表达式 (后者从 2.1.0+ 开始支持).过滤器应该被添加在 Ja ...
- POJ 1061 青蛙的约会( 拓欧经典题 )
链接:传送门 思路:简单拓展欧几里德,分析后可以得到方程 x + m * t = y + n * t + L * s( s控制圈数,t代表跳t次会碰面 ),经过化简可以得到 ( n - m ) * t ...
- ACdream 1415 Important Roads
Important Roads Special JudgeTime Limit: 20000/10000MS (Java/Others)Memory Limit: 128000/64000KB (Ja ...
- servlet详细理解
生命周期 编辑 客户端请求该 Servlet: 加载 Servlet 类到内存: 实例化并调用init()方法初始化该 Servlet: service()(根据请求方法不同调用doGet() 或者 ...
- 王立平--split字符串切割
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQyNTUyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- oracle存储过程的使用
一. 使用for循环游标:遍历全部职位为经理的雇员 1. 定义游标(游标就是一个小集合) 2. 定义游标变量 3. 使用for循环游标 declare -- 定义游标c_job cursor c_jo ...
- Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
一.使用Sqoop将MySQL中的数据导入到HDFS/Hive/HBase watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWFyb25oYWRvb3A=/ ...
- android:padding 与 android:margin的差别
android:padding Padding 为内边框,指该控件内部内容,如文本/图片距离该控件的边距 android:margin Margin 为外边框,指该控件距离边父控件的边距
- Linux 下安装 jdk-7u79-linux-x64.gz,jdk1.7.0_79,jdk1.7步骤:
1.首先下载对应CentOS版本的jdk:这里我下载的是jdk-7u79-linux-x64.tar.gz 2.上传到CentOS下的目录中 3.新建一个APP目录作为存储jdk的目录 4.解压jdk ...