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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

提示: 该帖被管理员或版主屏蔽

7 个回复

正序浏览
920792433 发表于 2015-10-19 00:40
我也不知道为什么我的帖子被屏蔽了,本来想给你分的   但是被管理员删了  我也不知道 我发的这帖子有啥问 ...

哦,OK,谢谢啦,不过分也够了,有什么问题可以问我哦
回复 使用道具 举报
徐慧shanghai 发表于 2015-10-16 09:27
为什么我幸苦写的程序却都不给分 ,都特么是些什么人啊

另外希望给黑马反馈反馈   论坛这部分逻辑写的 ...

我也不知道为什么我的帖子被屏蔽了,本来想给你分的   但是被管理员删了  我也不知道 我发的这帖子有啥问题!!!!!
回复 使用道具 举报

为什么我幸苦写的程序却都不给分 ,都特么是些什么人啊

另外希望给黑马反馈反馈   论坛这部分逻辑写的实在是太烂了

在这个版块发帖子 发完奖励的黑马币 需要暂时冻结
如果在有回复的情况下 ,三天没有结帖子应该把 那些黑马币处理掉平均分配给回帖的人 ,对于不结贴的人 ,扣除双倍黑马币


不然我这辛辛苦苦写的程序啊 ,哎  
回复 使用道具 举报
怎么给屏蔽了。。。
回复 使用道具 举报
先变遍历里面所有的.txt文件,然后用I/O流输出到D盘上
回复 使用道具 举报
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;

public class Test {
        public static void main(String[] args) {
                // 遍历文件夹     这个文件夹为需要 扫描的文件夹
                File f = new File("D:\\ESS\\cloud");
                showDir(f);
        }

        // 遍历文件夹,如果满足条件则进行拷贝    注意这里会拷贝包括所有的子文件夹下的文件 ,如果不需要拷贝字文件夹下的文件的话,把递归去掉即可   就是 showDir(files[x]);  这一行
        //  注意确保  D:Show文件夹存在
        public static void showDir(File dir) {
                File[] files = dir.listFiles();
                for (int x = 0; x < files.length; x++) {
                        if (files[x].isDirectory())
                                showDir(files[x]); // 如果是目录,那继续调用这个函数,知道它不是目录,到else部分跳出来
                        else {
                                //满足条件则进行拷贝   如果是 .java文件就进行拷贝,当然如果是需要拷贝 txt的,那么把.java 替换为 .txt即可
                                if (files[x].getName().endsWith(".java")) {
                                        fileChannelCopy(files[x],new File("D:\\Show\\" + files[x].getName()));
                                }
                                System.out.println(files[x]);// 出口 当执行到这里,对应的函数也就结束了
                        }

                }
        }

        /***
         * 文件拷贝方法
         * @param s
         * @param t
         */
        public static void fileChannelCopy(File s, File t) {
                FileInputStream fi = null;
                FileOutputStream fo = null;
                FileChannel in = null;
                FileChannel out = null;
                try {
                        fi = new FileInputStream(s);
                        fo = new FileOutputStream(t);
                        in = fi.getChannel();// 得到对应的文件通道
                        out = fo.getChannel();// 得到对应的文件通道
                        in.transferTo(0, in.size(), out);// 连接两个通道,并且从in通道读取,然后写入out通道
                } catch (IOException e) {
                        e.printStackTrace();
                } finally {
                        try {
                                fi.close();
                                in.close();
                                fo.close();
                                out.close();
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                }
        }
}




热乎乎刚出炉,运行时请参照注释
目前是遍历文件夹下所有的文件,包括子目录的文件,如果不需要子目录的文件,把注释中说的那行去掉即可

现在是拷贝的.java文件,如果要.txt  那么把   .java改称.txt即可
回复 使用道具 举报
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.nio.channels.FileChannel;

  6. public class Test {
  7.         public static void main(String[] args) {
  8.                 // 遍历文件夹     这个文件夹为需要 扫描的文件夹
  9.                 File f = new File("D:\\ESS\\cloud");
  10.                 showDir(f);
  11.         }

  12.         // 遍历文件夹,如果满足条件则进行拷贝    注意这里会拷贝包括所有的子文件夹下的文件 ,如果不需要拷贝字文件夹下的文件的话,把递归去掉即可   就是 showDir(files[x]);  这一行
  13.         //  注意确保  D:Show文件夹存在
  14.         public static void showDir(File dir) {
  15.                 File[] files = dir.listFiles();
  16.                 for (int x = 0; x < files.length; x++) {
  17.                         if (files[x].isDirectory())
  18.                                 showDir(files[x]); // 如果是目录,那继续调用这个函数,知道它不是目录,到else部分跳出来
  19.                         else {
  20.                                 //满足条件则进行拷贝   如果是 .java文件就进行拷贝,当然如果是需要拷贝 txt的,那么把.java 替换为 .txt即可
  21.                                 if (files[x].getName().endsWith(".java")) {
  22.                                         fileChannelCopy(files[x],new File("D:\\Show\\" + files[x].getName()));
  23.                                 }
  24.                                 System.out.println(files[x]);// 出口 当执行到这里,对应的函数也就结束了
  25.                         }

  26.                 }
  27.         }

  28.         /***
  29.          * 文件拷贝方法
  30.          * @param s
  31.          * @param t
  32.          */
  33.         public static void fileChannelCopy(File s, File t) {
  34.                 FileInputStream fi = null;
  35.                 FileOutputStream fo = null;
  36.                 FileChannel in = null;
  37.                 FileChannel out = null;
  38.                 try {
  39.                         fi = new FileInputStream(s);
  40.                         fo = new FileOutputStream(t);
  41.                         in = fi.getChannel();// 得到对应的文件通道
  42.                         out = fo.getChannel();// 得到对应的文件通道
  43.                         in.transferTo(0, in.size(), out);// 连接两个通道,并且从in通道读取,然后写入out通道
  44.                 } catch (IOException e) {
  45.                         e.printStackTrace();
  46.                 } finally {
  47.                         try {
  48.                                 fi.close();
  49.                                 in.close();
  50.                                 fo.close();
  51.                                 out.close();
  52.                         } catch (IOException e) {
  53.                                 e.printStackTrace();
  54.                         }
  55.                 }
  56.         }
  57. }
复制代码



fileChannelCopy(files[x],new File("D:\\Show\\" + files[x].getName()));
请注意这行
这个为你要将文件拷贝到哪个文件夹下,要确保那个文件夹存在,现在是放在  d:show 文件夹下的,如果要换文件夹,请修改成自己的文件夹,并保证文件夹存在就OK了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马