zoukankan      html  css  js  c++  java
  • 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("
    ");	//换行
    				}
    				bw.flush();
    				bw.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
            	
            	// 删除原文件夹中已复制过的.txt文件
    			file.delete();
    		}
    	}
    }
    
  • 相关阅读:
    python time 转换&运算tips
    Web.py session用户认证
    简单的内存池实现gko_alloc
    cpp(第十章)
    cpp(第九章)
    cpp(第八章)
    cpp(第七章)
    cpp(第六章)
    cpp(第五章)
    结构中的位字段
  • 原文地址:https://www.cnblogs.com/Big-Boss/p/9435169.html
Copyright © 2011-2022 走看看