`

用java写了一个实用的类----递归的拷贝给定目录的.java文件到指定的一个文件中

阅读更多
用java写了一个实用的类----递归的拷贝给定目录的.java文件到指定的一个文件中
当然可以扩展一下,做成一个实用的工具,做一下界面,增加一个可选择的后缀名...呵呵,自己懒的要命,有兴趣可以作一下,感觉这个工具还挺实用的,不需要你手工一个个复制,粘贴,只需要输入你要拷贝的目录和要拷贝到的文件的名字,成百上千的文件就会替你拷贝的好好的...呵呵,不过拷贝的次序不确定,我的那个SNLCompiler代码就是用这个把数百个文件合成一个文件贴到blog里的,阅读起来可能有困难...

package edu.jlu.fuliang;

import java.io.*;

public class CopyFiles {

 public void copyAllFiles(String dirName, String toFileName) {
  if (dirName.length() == 0) {
   dirName = new String("..");
  }
  try {
   File path = new File(dirName);
   String[] fileNames = path.list();
   if (fileNames != null) {
    for (int i = 0; i < fileNames.length; i++) {

     File file = new File(path.getPath(), fileNames[i]);
     if (file.isDirectory()) {
      copyAllFiles(file.getAbsolutePath(), toFileName);
     } else {
      if (fileNames[i].endsWith(".java")) {
       FileInputStream fis = new FileInputStream(file);
       FileOutputStream fos = new FileOutputStream(
         toFileName, true);
       byte[] buf = new byte[512];
       int size = 0;
       while ((size = fis.read(buf, 0, buf.length)) != -1) {
        fos.write(buf, 0, size);
        fos.flush();
       }
       fis.close();
       fos.close();
      }
     }
    }
   }
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 public static void main(String[] args) {
  CopyFiles copyFiles = new CopyFiles();
  copyFiles.copyAllFiles(args[0], args[1]);
 }
}

分享到:
评论

相关推荐

    java文件夹的拷贝

    而在`java.nio`中,`Files.copy()`方法提供了一种简洁的方式,可以方便地完成文件的复制,包括从一个位置到另一个位置的本地文件复制。 ```java try (InputStream in = new FileInputStream(source); ...

    java 文件夹复制拷贝

    首先,我们需要了解Java中的`java.io`包,这个包提供了许多处理I/O流的类,包括处理文件的类如`File`、`FileInputStream`、`FileOutputStream`等。文件夹复制的基本思路是遍历目标文件夹下的所有文件和子文件夹,...

    拷贝文件技术

    根据给定的信息,本文将详细解释“拷贝文件技术”中的关键知识点,包括如何指定目录拷贝文件并更改文件名,以及如何删除垃圾文件。 ### 拷贝文件技术概述 在计算机科学中,文件拷贝是一项基本而重要的任务。在实际...

    Java面向对象(基础)

    根据给定的文件信息,我们可以总结出以下关于Java面向对象的基础知识点: ### 1. Java的可移植性 - **实现原理**:Java语言的可移植性主要通过Java虚拟机(JVM)来实现。无论在何种操作系统上,只需要适配相应的JVM...

    拷贝文件夹

    在计算机操作中,“拷贝文件夹”指的是将一个文件夹及其所有内容(包括子文件夹和子文件夹内的文件)复制到另一个位置的过程。这是一项常见的文件管理任务,在进行备份、数据迁移或资源共享时尤为常见。 #### 二、...

    java考试题库(大二期末考试必备).doc

    25. 重载(overload):一个类中的方法与另一个方法同名,但是参数表不同,重载是 Java 语言中的一种多态机制。 26. 覆盖(override):子类方法的名称、参数和返回类型必须与父类方法一致,覆盖是 Java 语言中的一种...

    java综合面试题.pdf

    一个".java"源文件中是否可以包括多个类(不是内部类)? - **可以**,但只能有一个公共类(public class),并且文件名必须与该公共类名相同。 #### 8. 排序都有哪几种方法? 常见的排序方法有冒泡排序、插入...

    魔乐Java 李兴华 Java面向对象

    方法重载是指在同一个类中可以有多个同名但参数列表不同的方法,这有助于提高代码的可读性和效率。方法的递归调用是指一个方法在其内部调用自身,但必须设定终止条件以避免无限循环。 数组是Java中存储同一类型数据...

    java 算法

    - **拷贝一个目录或者文件到指定路径下**:使用 `File` 和 `FileInputStream/OutputStream` 实现文件复制。 - **简单的txt转换xml**:使用DOM或SAX解析器进行转换。 - **字母排序(A-Z)(先大写,后小写)**:使用 `...

    java 学习心得可以帮助大家

    `clone()`方法是`Object`类中的一个受保护的方法,用于创建当前对象的浅拷贝。这意味着如果对象包含引用类型的成员,则拷贝的对象将共享相同的引用。为了更深入地理解这一点,可以考虑重写`clone()`方法来实现深拷贝...

    java30个应该掌握的基础

    根据给定文件中的标题“java30个应该掌握的基础”及描述内容,下面将详细解析这些基础知识点: ### 1. 面向对象 (OOP) 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它通过抽象、封装、继承...

    考试,教辅,java,java分析题,java分析.pdf

    - **数组初始化与内存分配**:`A` 类中初始化了一个大小为 20 的 `B` 类对象数组,即使数组可能并未全部使用,也预先占用了内存,可以考虑动态创建或按需分配。 - **字符串连接效率**:在 `toString()` 方法中,...

    JAVA 知识库

    示例代码可能会使用`java.io.File`类的`listFiles()`方法来获取文件夹下的所有文件和子文件夹,并递归地遍历每个子文件夹。 ##### 3.11 一个用JAVA开发的会话密钥程序 这部分内容可能涉及了如何在Java中实现会话...

    java面试题总结

    ### Java面试题总结 ...以上是对给定文件中提及的Java知识点的一个较为详细的总结。这些知识点覆盖了Java编程的基础概念以及面试中常见的问题类型。对于准备参加Java面试的人来说,这些都是非常重要的知识点。

    java面试.docx

    3. **链表(LinkedList)**:链表是一种非连续的数据结构,每个节点包含数据和指向下一个节点的引用。它支持快速的插入和删除,但随机访问效率较低。 4. **散列表(HashMap)**:散列表基于数组和单向链表实现,...

    程序员面试题精选100题.doc

    - **在字符串中删除特定的字符**:可以使用双指针法,一个指针用于读取原字符串,另一个指针用于写入结果字符串。 - **IT公司笔试题算法部分**:这部分包含了更多具体的算法题,如递归实现回文判断、求网格中的黑点...

    中级程序员必备面试题.txt

    - **IN**:返回匹配任意一个给定值的行。 - **EXISTS**:检查子查询是否有行返回。 `EXISTS`通常更高效,因为它一旦找到匹配项就会停止执行。 #### 单例模式实现 - **懒汉式**:在首次使用时才创建实例。 - **...

    Python从入门到进阶知识手册 1885页

    - `join()`: 将序列中的元素以指定的字符连接生成一个新的字符串。 - `split()`: 通过指定分隔符对字符串进行切片。 #### Python是否区分大小写 - 是,Python是区分大小写的语言。 #### Python标识符命名规则 - ...

    互联网大厂Java面试题合集

    - **聚合**:表示“has-a”关系,表示一个类拥有另一个类的对象作为成员。 ##### 4.2.0 IO模型 - **IO模型**:主要包括BIO、NIO、AIO等。 - **NIO特点**:非阻塞I/O模型,使用通道和缓冲区进行数据传输。 ##### ...

    使用C语言实现23种设计模式。.zip

    23. **解释器模式**:给定一种语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。在C语言中,可以使用递归下降解析器实现。 以上就是23种设计模式在C语言环境中的基本概念...

Global site tag (gtag.js) - Google Analytics