A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© dangyongping 中级黑马   /  2016-5-7 19:48  /  574 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.itcast.spx_03;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

//IO复制文件改后缀名,用高效流多层文件夹(递归)。
/*
* 思路:
* 1. 创建数据源
* 2. 创建目的地
* 3.将file对象转换为File数组,遍历每个数组,
* 4.获得每个File对象,判断:
* 如果是文件夹,就建立文件夹,然后在重复3
* 如果不是文件夹,改名,然后复制到指定目录
*
*/
public class FileCopyDemo {
        public static void main(String[] args) throws IOException {
//                创建数据源
                File srcFile = new File("e:\\aaaa");
//                創建目的地
                File destFile = new File("F:\\bbbb");
                if(!destFile.exists()){
                        destFile.mkdirs();
                }
                FileCopyDemo.isFile(srcFile,destFile);
               
        }
//        定义一个方法,判断数组是否是文件夹
        public static void isFile(File srcFile,File destFile) throws IOException{
//                转换成File数组
                File[] file = srcFile.listFiles();
//                遍历数组,获取每个元素
                for (File file2 : file) {
//                        判斷是否是文件夾,如果是就创建,然后递归.
                        if(file2.isDirectory()){
                               
                                String name = file2.getName();
                                File ff = new File(destFile,name);
                                ff.mkdirs();
                                isFile(file2,ff);
                        }

                else{
                        String name = file2.getName();
                        String newName = name.replace(".java",".txt");
//                        创建最终文件
                        File newFile = new File(destFile,newName);
                        BufferedReader br = new BufferedReader(new FileReader(file2));
                        BufferedWriter bw = new BufferedWriter(new FileWriter(newFile));
                        String line = null;
                        while((line = br.readLine())!= null){
                                bw.write(line);
                                bw.newLine();
                                bw.flush();
                        }
                }
        }
        }
}
public class TicketsRunnable implements Runnable {

        private int tickets = 100;

        @Override
        public void run() {
                while (true) {
                        synchronized (this) {
                                try {
                                        Thread.sleep(100);
                                } catch (InterruptedException e) {
                                        e.printStackTrace();
                                }
                                if (tickets > 0) {
                                        //当剩余票数为50时,进入此判断
                                        if(tickets == 50 ){
                                                //如果当前线程不是指定的线程,就等待
                                                if(!Thread.currentThread().getName().equals("窗口4")){
                                                        try {
                                                                this.wait();
                                                        } catch (InterruptedException e) {
                                                                e.printStackTrace();
                                                        }
                                                }else{
                                                        //当是指定线程时,执行打印语句
                                                        System.out.println(Thread.currentThread().getName()
                                                                        + "正在卖第" + (tickets--) + "张票");
                                                        //唤醒所有线程,继续执行
                                                        notifyAll();
                                                }
                                        }
                                        System.out.println(Thread.currentThread().getName()
                                                        + "正在卖第" + (tickets--) + "张票");
                                }
                        }
                        if(tickets<1){
                                break;
                        }
                }
        }
}

2 个回复

倒序浏览
。。。两个程序塞一起,注释也不全,要死人的节奏啊
回复 使用道具 举报
看得我头发麻
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马