io流操作文件--读取,遍历,规整

IO流 常用辅助方法

/**
* 辅助方法 io流读取指定文件内容
*/

 public static String readFileContent(String path) {
        // 1.定义目标文件
        File srcFile = new File(path);
        StringBuffer stringBuffer = new StringBuffer();
        if (!srcFile.exists()) {
            System.out.println("指纹文件不存在");
            return "";    //返回空字符串
        }
        // 2.创建一个流,指向目标文件
        InputStream is = null;
        try {
            is = new FileInputStream(srcFile);
            //3.创建一个用来存储读取数据的缓冲数组
            byte[] array = new byte[128];
            //4.循环往外流(count为每次读取数组中的有效字节总数)
            int count = is.read(array);
            // 5.循环打印
            while (count != -1) {
                // 将byte[] -》 String
                // 将byte数组读取到的有效字节转换成字符串
                String string = new String(array, 0, count);
                System.out.print(string);
                stringBuffer.append(string);
                count = is.read(array);
            }
            return stringBuffer.toString();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭io流
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return "";    //返回空字符串
    }

/**
* 辅助方法 获取文件夹下所有的文件
*/

 public static List<File> getAllFiles(String dir) {
        //创建一个集合存放遍历到的File
        List<File> files = new ArrayList<File>();
        File file = new File(dir);
        if (file.exists() && file.isDirectory()) {
            //把遍历得到的东西存放在files里面
            longErgodic(file, files);
        }
        return files;
    }//这是一个递归方法,会不断来回调用本身,但是所有获得的数据都会存放在集合files里面

/**

  • **辅助方法 **
    */
 private static void longErgodic(File file, List<File> files) {//.listFiles()方法的使用 //把文件夹的所有文件(包括文件和文件名)都放在一个文件类的数组里面 
        File[] fillArr = file.listFiles();//如果是一个空的文件夹
        if (fillArr == null) {
            //后面的不执行,直接返回 
            return;
        }
        //如果文件夹有内容,遍历里面的所有文件(包括文件夹和文件),都添加到集合里面 
        for (File file2 : fillArr) {//如果只是想要里面的文件或者文件夹或者某些固定格式的文件可以判断下再添加 
            files.add(file2);
            //添加到集合后,在来判断是否是文件夹,再遍历里面的所有文件      //方法的递归
            longErgodic(file2, files);
        }
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值