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文件的更多相关文章

  1. java 通过流的方式读取本地图片并显示在jsp 页面上(类型以jpg、png等结尾的图片)

    Java代码: File filePic = new File(path+"1-ab1.png"); if(filePic.exists()){ FileInputStream i ...

  2. java用流的方式加载图片

    前端: <img ng-show="photo" class="vertical_b" id="photoImg" src=" ...

  3. 删除GitHub上项目中的某个文件

    原文地址 https://www.jianshu.com/p/242412b43ca5 1.首先在本地中更新有该项目的最新包 即确保本地项目和git上的项目内容保持同步(git pull拉取项目代码) ...

  4. github 删除远程仓库项目中的任意文件夹

    今天上传代码把不需要的push上去了.结果想删除那个不想要的怎么弄都不行.网上大部分都是把那个项目整个暴力删除.那可不行啊那么多都删除.下次上传不是要命啊! 试啊试终于解决了.顺便记录一下也帮助下需要 ...

  5. 使用python脚本批量删除阿里云oss中的mp4文件

    #encoding:utf-8 ''' oss中有一些mp4文件需要删除,首先定位出这些文件放在txt文本中 然后通过python操作oss进行批量删除 ''' import oss2 auth = ...

  6. 【测试技术】ant在测试中的使用@文件以及目录的读写删和复制

    ant其实就是一个java的打包工具,存在的时间已经很久了,很多同行在使用中可能就是用,对为什么要用它,能够怎么用没有更多的了解: ---------------------------------- ...

  7. Java:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  8. 五种方式让你在java中读取properties文件内容不再是难题

    一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...

  9. 文件传输基础——Java IO流

    一.文件的编码 package com.study.io; /** * 测试文件编码 */ public class EncodeDemo { /** * @param args * @throws ...

随机推荐

  1. background及background-size

    background有以下几种属性: background-color background-position background-size background-repeat background ...

  2. TensorFlow+实战Google深度学习框架学习笔记(11)-----Mnist识别【采用滑动平均,双层神经网络】

    模型:双层神经网络 [一层隐藏层.一层输出层]隐藏层输出用relu函数,输出层输出用softmax函数 过程: 设置参数 滑动平均的辅助函数 训练函数 x,y的占位,w1,b1,w2,b2的初始化 前 ...

  3. Django 连接MySQL 通过pymysql 库

    ython3 如何安装pymysql 库,在此不再做多的讲解,如果有想知道如何安装的朋友,请求参考下面的连接地址: 第一步:应用setting.py 文件设置mysql 数据库连接相关属性.   DA ...

  4. linux下RTP编程(使用JRTPLIB)(转)

    流媒体指的是在网络中使用流技术传输的连续时基媒体,其特点是在播放前不需要下载整个文件,而是采用边下载边播放的方式,它是视频会议.IP电话等应用场合的技术基础.RTP是进行实时流媒体传输的标准协议和关键 ...

  5. Java 超类引用子类对象的示例代码

    动态方法分配 dynamic method dispatch 一个被重写的方法的调用会在运行时解析,而不是编译时解析 Java 会根据在调用发生时引用的对象的类型来判断所要执行的方法 public c ...

  6. ConcurrentHashMap 并发HashMap原理分析

        ConcurrentHashMap和Hashtable主要区别就是围绕着锁的粒度以及如何锁.如图   左边便是Hashtable的实现方式---锁整个hash表:而右边则是Concurrent ...

  7. 06006_redis数据存储类型——String

    1.概述 (1)字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等: (2)在Redis中 ...

  8. JavaScript(正则表达式一)

    -------------------- 创建正则表达式: 验证匹配的两个方法 //正则表达式测试 /* var p=new RegExp("Box","i") ...

  9. POJ 3301

    开始就是瞄着三分来做的,但看题目,感觉是旋转卡壳吧..可是,用了旋转卡壳还三分条毛啊.. 可以令正方形不旋转,而改为令点绕原点旋转,这样,很好的解决了问题,就可以比较X轴最大长度和Y轴最大长度来确定正 ...

  10. UVA - 11762 - Race to 1 记忆化概率

    Dilu have learned a new thing about integers, which is - any positive integer greater than 1 can bed ...