文件复制 递归操作以及改文件名

    xiaoxiao2021-03-25  84

    package com.qidai; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.util.Scanner; /**  * 提示用户输入任意目录,将该目录下所有.txt文件复制到D:\\txts文件夹下,并将文件后缀名改为.docx  */ public class Test8 { public static void main(String[] args) { Test8 t = new Test8(); System.out.println("请输入文件目录,如:       E:\\javaproject\\exam"); Scanner sc = new Scanner(System.in); String path = sc.next(); System.out.println(path); // 原目录 File dir = new File(path); // 目标目录 File dest = new File("D:\\txts"); if(t.copy(dir, dest)){ System.out.println("写入成功"); }else{ System.out.println("写入错误,请检查路径"); } } public boolean copy(File dir, File dest) { // 判断原目录是否存在 不存在则创建 if (!dest.exists()) { dest.mkdirs(); } // 判断目标是否是目录 不存在则创建 if (dest.isDirectory()) { dest.mkdirs(); } try { //获取所有文件 File[] files = dir.listFiles(); for (File file : files) { if (file.isDirectory()) // 如果此File对象是目录,递归进入目录 copy(file, dest); else { // 判断是否是txt类型文件 if (file.getName().endsWith(".txt")) { BufferedReader br = new BufferedReader(new FileReader(file)); // 将txt文件复制到目标目录, 并更改扩展名 PrintWriter pw = new PrintWriter(new FileWriter(dest.getAbsolutePath() + File.separator+ file.getName().replace(".txt",".docx"))); String line = null; while ((line = br.readLine()) != null) { pw.println(line); } br.close(); pw.close(); } } } return true; } catch (Exception e) { return false; } } }
    转载请注明原文地址: https://ju.6miu.com/read-17257.html

    最新回复(0)