本讲内容:示例《圣诞节的表白》
有一个害羞的男孩决定在圣诞节的这天向她表白……,因为奇怪的条件限制只能把表白的内容写在一台公共的计算机上。为了只让她看到,而不会被其他人发现,男孩用他刚学习的输入输出知识写了一些代码,他建立了一个文件,在文件里打印了一些内容,建立了1亿个文件夹,把自己的文件藏在混淆目录中,待女孩子看完之后,又把这些代码和文件夹都删除了:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class HappyChristmas {
// 创建多层文件夹
public static boolean createDirectory(File parent, int level) {
File[] fa = new File[10];
for (int i = 0; i < level; i++) {
for (int j = 0; j < 10; j++) {
fa[j] = new File(parent, "" + j);
fa[j].mkdir();
createDirectory(fa[j], level - (i + 1));
}
}
return true;
}
// 删除文件夹
public static boolean deleteDirectory(File file) {
if (file.delete()) {
return true;
} else {
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
files[i].delete();
} else {
deleteDirectory(files[i]);
}
}
if (file.delete()) {
return true;
}
}
return true;
}
public static void main(String[] args) {
// 创建一个目录 c:/happy
File file1 = new File("c://happy");
if (file1.mkdir()) {
System.out.println("c://happy" + "目录创建成功");
} else {
System.out.println("c://happy" + "目录创建失败");
}
// 创建一个文件 c:/java/happyChristmas.txt
File file2 = new File("c://happy//happyChristmas.txt");
try {
if (file2.createNewFile()) {
System.out.println("c://happy//happyChristmas.txt" + "文件创建成功");
} else {
System.out.println("c://happy//happyChristmas.txt" + "文件创建失败");
}
} catch (IOException e) {
e.printStackTrace();
}
// 创建一个多级目录 c:/java/2/0/1/0/1/2/2/4
File file3 = new File("c://happy//2//0//1//0//1//2//2//4");
if (file3.mkdirs()) {
System.out
.println("c://happy//2//0//1//0//1//2//2//4" + "多级目录创建成功");
} else {
System.out
.println("c://happy//2//0//1//0//1//2//2//4" + "多级目录创建失败");
}
// 移动happyChristmas.txt到 c:/java/2/0/1/0/1/2/2/4
File file4 = new File(
"c://happy//2//0//1//0//1//2//2//4//happyChristmas.txt");
if (file2.renameTo(file4)) {
System.out
.println("c://happy//2//0//1//0//1//2//2//4//happyChristmas.txt"
+ "文件拷贝成功");
} else {
System.out
.println("c://happy//2//0//1//0//1//2//2//4//happyChristmas.txt"
+ "文件拷贝失败");
}
//从控制台输入内容存储到happyChristmas.txt中
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入内容:/n");
try {
FileWriter writer = new FileWriter(file4.toString());
while(!(in.readLine().equalsIgnoreCase("exit"))){
String happyString = in.readLine();
System.out.print("您输入的内容是: /""+happyString+"/",正在存储中/n");
writer.write(happyString+System.getProperty("line.separator"));
}
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
//从文件中读取
try {
FileReader fr = new FileReader(file4.toString());
BufferedReader br = new BufferedReader(fr);
String ls = br.readLine();
System.out.println("读取中,文件的内容如下:");
while(ls!=null){
System.out.println(ls);
ls = br.readLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 创建8层混淆目录
if (createDirectory(file1, 8)) {
System.out.println("创建混淆目录成功");
} else {
System.out.println("创建混淆目录失败");
}
// 删除文件 c:/happy/2/0/1/0/1/2/2/4/happyChristmas.txt
if (file4.delete()) {
System.out
.println("c://happy//2//0//1//0//1//2//2//4//happyChristmas.txt"
+ "删除文件成功");
} else {
System.out
.println("c://happy//2//0//1//0//1//2//2//4//happyChristmas.txt"
+ "删除文件失败");
}
// 删除 c:/happy 目录
if (deleteDirectory(file1)) {
System.out.println(file1.toString() + "文件夹删除成功");
} else {
System.out.println(file1.toString() + "文件夹删除失败");
}
}
}
这里爆个小料,男孩子在文件里的内容我悄悄的看了一下,大致是这样的:“我想了很久,终于鼓起勇气向你写这封信,你…… 你欠我的钱该还了吧!” …… 随后是欠债清单:“ 5岁时,借了一块钱买了2只棒棒糖,自己吃了一只,另外一只竟然给了另一个小男孩,6岁时……,12岁时…… 等等 ”
按照好莱坞式的结局……
女孩子看完信之后,心里一片感动,神情的拉着男孩子的手说:我愿意拿一生来还债^_^,随后他们一起过着幸福而快乐的生活。