java学习(20)

from: http://android.yaohuiji.com/archives/3629

 

Java基础第二十讲:输入输出(二)

25 DEC

lesson20

本讲内容:示例《圣诞节的表白》

有一个害羞的男孩决定在圣诞节的这天向她表白……,因为奇怪的条件限制只能把表白的内容写在一台公共的计算机上。为了只让她看到,而不会被其他人发现,男孩用他刚学习的输入输出知识写了一些代码,他建立了一个文件,在文件里打印了一些内容,建立了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岁时…… 等等 ”

按照好莱坞式的结局……

女孩子看完信之后,心里一片感动,神情的拉着男孩子的手说:我愿意拿一生来还债^_^,随后他们一起过着幸福而快乐的生活。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值