------- android培训、java培训、期待与您交流! ----------
package cn.itcast.a_backup; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; public class TestBackup { public static void main(String[] args) throws IOException { File dir = getDir(); System.out.println(dir); listAllFiles(dir); } /** * 获取指定目录中所有的.java 文件. 第一点: 找到所有文件 第二点: 找到后缀名是.java 的文件. 如果是目录: 进入目录使用递归查找 * * @param dir * @throws IOException */ private static void listAllFiles(File dir) throws IOException { // 获取指定目录中所有的子文件和子目录 File[] listFiles = dir.listFiles(); for (File f : listFiles) { // 如果是目录,继续调用自己. 直到目录中没有子目录了. if (f.isDirectory()) { listAllFiles(f); } else if (f.isFile() && f.getName().endsWith(".java")) { cpoyFile(f); } } } /** * 拷贝.java 文件. 备份, 就是使用IO流拷贝文件.只不错备份文件后缀名需要特殊的标示 .bak * * @param f * @throws IOException */ private static void cpoyFile(File f) throws IOException { // Demo1.java ->Demo1.bak // 获取需要备份的源文件的前缀名. String srcStartName = f.getName().substring(0, f.getName().lastIndexOf(".")); // 根据源文件的前缀名生成备份文件的文件名. String destFileName = srcStartName + ".bak"; // 指定备份文件保存的路径 File backupDir = new File("e:\\javaFiles"); // 检测该目录是否存在,如果不存在初始化一个 if (!backupDir.exists()) { backupDir.mkdir(); } // 拷贝文件. // 使用字节输入流封装源文件. FileInputStream fis = new FileInputStream(f); // 创建字节输出流,保存读取的数据.实现备份 FileOutputStream fos = new FileOutputStream(new File(backupDir, destFileName)); // 读取源文件. byte[] datas = new byte[1024]; int len; while ((len = fis.read(datas)) != -1){ fos.write(datas, 0, len); } // 关闭流 fis.close(); fos.close(); } /** * 控制台获取有效的目录. * * @return */ private static File getDir() { // 控制台获取用户输入的一个目录 Scanner sc = new Scanner(System.in); String filePath; File dir; while (true) { System.out.println("请输入目录:"); filePath = sc.next(); dir = new File(filePath); // 检测目录是否存在 if (!dir.exists()) { System.out.println("目录不存在..."); continue; // 结束本次,继续下一次 } // 检测是否是文件. if (!dir.isDirectory()) { System.out.println("请输入有效的目录"); continue; } break; } return dir; } }
package cn.itcast.b_backup; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Arrays; import java.util.Scanner; public class BackupJavaFile1 { public static void main(String[] args) throws IOException { File dir = getFile(); listAllFile(dir); } private static File getFile() { Scanner sc = new Scanner(System.in); File dir; while (true) { System.out.println("请输入路径:"); String next = sc.next(); dir = new File(next); if (!dir.exists()) { System.out.println("目录不存在"); continue; } else if (dir.isFile()) { System.out.println("请输入目录:"); continue; } else { break; } } return dir; } public static void listAllFile(File dir) throws IOException { File[] listFiles = dir.listFiles(); for (File f : listFiles) { if (f.isDirectory()) { listAllFile(f); } else if (f.isFile() && f.getName().endsWith(".java")) { backupFile(f); } } } private static void backupFile(File f) throws IOException { String srcStartName = f.getName().substring(0, f.getName().lastIndexOf(".")); FileInputStream fis = new FileInputStream(f); File dir = new File("e:\\java笔记"); if (!dir.exists()) { dir.mkdir(); } File[] listFiles = dir.listFiles(); System.out.println(listFiles.length); String destStartName; String backUpFileName; String[] split = f.getParent().split("\\\\"); backUpFileName = srcStartName + "_" + split[split.length - 1] + ".txt"; FileOutputStream fos = new FileOutputStream(new File(dir, backUpFileName)); byte[] datas = new byte[1024]; int len; while ((len = fis.read(datas)) != -1) { fos.write(datas, 0, len); } fis.close(); fos.close(); } }
相关推荐
【描述】中提到的"( 01_黑马程序员_张孝祥_Java基础加强_课程价值与目标介绍.zip )" 暗示这门课程可能包含一系列视频教程,首个文件"01_黑马程序员_张孝祥_Java基础加强_课程价值与目标介绍.avi"很可能是课程的开篇...
黑马程序员_毕向东_Java基础视频教程第18天-14-IO流(拷贝文本文件图例).zip
黑马程序员SpringMVC完整视频及代码笔记等资料,是您学习SpringMVC的最佳学习资料。
这个名为“黑马程序员_毕向东_Java基础源码.rar”的压缩包文件,包含了丰富的Java基础源代码实例,对于初学者来说,是深入了解Java编程的良好资源。 一、Java基本语法 Java语言以其严格的类型检查和面向对象特性...
《黑马程序员_hibernate框架开发2016版讲义和笔记资料_day02》 本文将深入探讨2016年黑马程序员发布的Hibernate框架开发课程的第二天内容。Hibernate,一个强大的Java持久化框架,简化了数据库操作,为开发者提供了...
Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。对于初学者来说,选择合适的资源来学习Java是非常重要的。"黑马程序员_(适合初学者入门的Java基础视频)"是一套专为初学者设计的Java...
黑马程序员__移动商城项目实战 包括黑马程序员乐淘商城实战和慕课React+Antd
《Hibernate框架深度解析——基于黑马程序员2016版教学资料》 Hibernate,作为一个强大的对象关系映射(ORM)框架,极大地简化了Java开发者在数据库操作中的工作。它通过提供数据持久化的对象模型,使得开发者可以...
马程序员_黎活明__Spring如何装配各种集合类型的属性.ppt )
Java 8是Java语言发展的一个重要里程碑,引入了许多创新性的特性和改进,...黑马程序员的Java8新特性详解笔记和源码提供了深入学习这些概念的资源,结合实际的代码示例,将有助于你更好地理解和掌握Java 8的核心特性。
黑马程序员_毕向东_Java基础视频教程第18天-09-IO流(文件的续写)
《黑马程序员_Java基础辅导班教程课件[第01期]第15天》是针对初学者设计的一堂深入浅出的Java编程课程,旨在帮助学员巩固和深化Java基础知识。这堂课件涵盖的内容广泛且实用,对于想要在IT行业中开启Java开发旅程的...
【Java基础辅导班教程...总之,"黑马程序员_Java基础辅导班教程课件[第01期]第13天"是一个全面覆盖Java基础的教程,结合课堂内容、视频、源码和图解,为学员提供了丰富的学习资源,助力他们稳步迈进Java开发的世界。
在本视频教程“黑马程序员_毕向东_Java基础视频教程第22天-06-GUI(Action事件)”中,讲师毕向东深入讲解了Java GUI中的Action事件处理机制,这是构建用户友好界面的关键部分。 首先,我们要理解什么是GUI。GUI,...
黑马程序员_张孝祥_Java多线程与并发库,老师讲的非常仔细,老师很有耐心.欢迎大家下载学习.
传智播客_javaWEB讲义和笔记资料_day09 黑马程序员_javaWEB教程讲义和笔记资料_day09
在"黑马程序员_javaWEB讲义和笔记资料_day08"中,我们可以预见到这一天的学习内容将深入到Java Web开发的核心概念和技术。"传智播客"作为知名的技术教育机构,其课程通常涵盖全面且深入的IT知识,因此这些讲义和笔记...
黑马程序员_android实例教程,网上找的的安卓教材,真心不错。
黑马程序员_iOS基础视频_最适合初学者入门video,百度云链接。
### 黑马程序员_超全面的JavaWeb教程-视频+...无论是对于在校学生还是职场人士来说,《黑马程序员_超全面的JavaWeb教程》都是一份非常宝贵的资源。希望每位读者都能够从中获益,并在未来的职业生涯中取得更大的成就!