重定向

把多个文件组合到一个文件中

题目描述:

假如当前你有多个文件,文件名分别为:

MyTest.java

MyWork.java

Test.java

MyWork.java(该文件与上一个同名文件的内容、地址均不同)

等。

你需要把这些文件里的内容全部copy到同一个文件MyTest2.txt(以下程序由于后做这一步,因此取名靠后,这里不做修改)中,要求,每复制一个文件内容前面需加上MyTest?.java。

MyTest2.txt的内容形式如下:

MyTest1.java

MyTest.java的内容

MyTest2.java

MyWork.java的内容

MyTest3.java

Test.java的内容

MyTest4.java

MyWork.java的内容。

程序编写过程:

新建一个文件MyTest.txt,把所需要的文件地址全部写到该文件中,如下图所示:

然后按照这个路径找到指定文件之后把他们加入到同一个文件MyTest2.txt中。

程序代码如下:

//2017.03.21 by 迷糊狐狸
import java.io.File;
import java.io.PrintWriter;
import java.util.Scanner;

public class MyWork {
    
    public static void main(String[] args) throws Exception{
        
        //准备一个新文件MyTest2.txt
        PrintWriter pw = new PrintWriter(
                "D:\新建文件夹\正式\作业\2017年3月\2017-03-21\MyTest2.txt"
                ,"gbk");
        
        //找到文件MyTest.txt中具体路径所指定的文件
        Scanner scan = new Scanner(new File(
                "D:\新建文件夹\正式\作业\2017年3月\2017-03-21\MyTest.txt")
                ,"gbk");
        
        //把指定路径所找到的文件内容一步步加入到文件MyTest2.txt中
        //在此之前加上名字和序号"MyTest" + i + ".java"
        int i = 0;
        while(true){
            i++;
            if(scan.hasNext()==false) break;
            pw.println();
            pw.write("MyTest" + i + ".java");
            pw.println();
            String s = scan.nextLine();
            Scanner scan2 = new Scanner(new File(s),"gbk");
    
            while(true){
                if(scan2.hasNext()==false) break;
                String s2 = scan2.nextLine();
                pw.write(s2);
                pw.println();
            }
        }
        pw.flush();
    }

}

 程序输出结果如下(这里是把多个java文件放入到同一个文件中):

由于输出结果内容过多,因此并没有全部贴上来。

原文地址:https://www.cnblogs.com/liyuanba/p/2017-03-21.html