重定向
把多个文件组合到一个文件中
题目描述:
假如当前你有多个文件,文件名分别为:
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文件放入到同一个文件中):
由于输出结果内容过多,因此并没有全部贴上来。