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. nyoj48-小明的调查作业

    48-小明的调查作业 内存限制:64MB时间限制:1000msSpecial Judge: No accepted:3submit:4 题目描述: 小明的老师布置了一份调查作业,小明想在学校中请一些同 ...

  2. SCOI2003 严格N元树

    SCOI2003 严格N元树 Description 如果一棵树的所有非叶节点都恰好有n个儿子,那么我们称它为严格n元树.如果该树中最底层的节点深度为d (根的深度为0),那么我们称它为一棵深度为d的 ...

  3. java 比较两个时间大小

    Date d1 = new Date(System.currentTimeMillis()-1000); Date d2 = new Date(System.currentTimeMillis()); ...

  4. 各项硬件使用剖析(一)---让你一眼就能区分瓶颈是Memory、processor ORdisk!

      

  5. ie6 bug 收集

    1.IE6中奇数宽高的BUG IE6下查看,变成了right:1px的效果了: IE6还有奇数宽高的bug,解决方案就是将外部相对定位的div宽度改成偶数.高度也是一样的查看源码: CSS代码: #o ...

  6. wordpress迁移以及遇到的一些问题[mysql备份导入导出][固定链接404]

    总的问题有两个,一是apache的配置,二是mysql的导出和导入.以及迁移后遇到的一些问题解决过程和方法. A机器为老server.B为新server,A机器使用Appserv,B使用wmap,在配 ...

  7. Routh-Hurwitz Criterion 劳斯稳定判据

    Routh-Hurwitz Criterion 为什么仅仅要有一个极点在右半平面,那么系统就不会稳定? 比如H(s) =( 1/(s+1) ) *  ( 1/(s+3) ) * ( 1/(s-2) ) ...

  8. [Tailwind] Style Elements on hover and focus with Tailwind’s State Variants

    In this lesson, we learn how to target specific states of elements and apply styles only when those ...

  9. esql开发总结

    1 定义或者声明方法 int method(char *arg1,char* arg2...);   实现方法 int method(char *arg1,char* arg2...)     EXE ...

  10. 分享:Android系统的经常使用权限整理

    1.ACCES_NETWORK_STATE      同意应用程序获取网络状态信息的权限 2.ACCESS_WIFI_STATE          同意应用程序获取Wi-Fi网络状态的权限 3.BAT ...