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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© clz2431 中级黑马   /  2015-12-17 20:24  /  556 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*需求:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
*
*
* 打印出该文件夹下所有的.java文件名
* 1,获取到该文件夹路径下的所有的文件和文件夹,存储在File数组中
* 2,遍历数组,对每一个文件或文件夹做判断
* 3,如果是文件,并且后缀是.java的,就打印
* 4,如果是文件夹,就递归调用*/
public class DiGui {
        public static void main(String[] args) {
                /*
                 * 分析: 从键盘接收一个文件夹路径 1,如果录入的是不存在,给与提示 2,如果录入的是文件路径,给与提示 3,如果是文件夹路径,直接返回
                 */
                File dir = getDir();
                printJavaFile(dir);
        }

        public static File getDir(){  
        Scanner sc =new Scanner(System.in);  // 键盘录入
        System.out.println("请输入一个文件夹路径");// 输入一个文件夹路径
        while (true){           //死循环
                String line =sc.nextLine(); //用字符串接收
                File dir =new File(line);  //封装路径
                if (!dir.exists()) {       //if 是否存在路径
                        System.out.println("您录入的文件夹不存在,請重新輸入");
                        if         (dir.isFile()) {    //是否存在文件路径
                                System.out.println("您输入的是文件路径,请重新输入文件夹路劲");
                        }else{                 
                                return dir;
                        }
                       
                }
        }
        }
public static void printJavaFile(File dir){
        File[] subFiles=dir.listFiles();//获取到该文件夹路径下的文件和文件夹,存储在File数组中
        for (File subFile : subFiles) {//遍历数组,对每一个文件或者文件夹做判断
                if (subFile.isFile()&&subFile.getName().endsWith(".java")) {// 如果是文件,后缀名是点Java的就打印出来
                        System.out.println(subFile);
                }else if (subFile.isDirectory()) {  //如果是文件夹就重新调用
                        printJavaFile(subFile);          // 递归调用
                }
        }
       
  }

}



已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,
        并按照自然排序顺序后输出到b.txt文件中。即b.txt文件内容应为"abc......"这样的顺序
思路:
        1、先将a.txt文件内容读取出来并存到字符数组中
        2、用Arrays.sort(字符数组) 将这个字符数组排序
        3、将字符数组输出到b.txt文件中
*/

import java.io.IOException;
import java.io.File;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Arrays;

class ReadFileAndSortString {
        public static void main(String args[]) throws IOException
        {
                //封装数据源及目的地File
                    File a = new File("a.txt");
                    File b = new File("b.txt");
                //高效字符输入流得到数据源
                BufferedReader br = new BufferedReader(new FileReader(a));
                //高效字符输出流得到目的地
                BufferedWriter bw = new BufferedWriter(new FileWriter(b));
                String line =null;
                //循环读取文件
                while((line = br.readLine())!=null)
                {
                        //得到读取一行字符串的长度
                        int len = line.length();
                        char[] chrs = new char[len];
                        //转换成字符数组
                        chrs = line.toCharArray();
                        //通过Arrays的sort方法排序
                        Arrays.sort(chrs);
                        System.out.println("字符串:"+new String(chrs));
                        //写到文件中
                        bw.write(chrs);
                        bw.newLine();
                        //刷新缓冲区
                        bw.flush();
                }
                //关闭资源
                br.close();
                bw.close();
                System.out.println("复制成功");
        }
}

1 个回复

倒序浏览
写的非常好,注释写的不错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马