• java IO操作File类


    ---恢复内容开始---

    IO操作

    把内存上的数据写到可持久化存储的设备上叫输出(Output)

    把持久存储数据的设备写到内存上叫输入(Input)

    File类

    把文件和文件夹都封装成文件对象

    File类获取对象

    1 import java.io.File;
    2 
    3 public class Demo02 {
    4 
    5     public static void main(String[] args) {
    6         File f = new File("E:\java学习\6月5号");
    7         System.out.println(f.getAbsolutePath());
    8 
    9     }
    返回了
    E:\java学习\6月5号
    import java.io.File;
    
    public class Demo02 {
    
        public static void main(String[] args) {
            File f = new File("E:\java学习\6月5号");
            System.out.println(f.getName());
    
        }
    返回了6月5号
    1 import java.io.File;
    2 
    3 public class Demo02 {
    4 
    5     public static void main(String[] args) {
    6         File f = new File("E:\java学习\6月15号");
    7         System.out.println(f.length());
    8 
    9     }
    获取了文件的大小 4096

    对文件和文件夹的操作

        public static void main(String[] args) throws IOException {
            File f = new File("E:\java学习\6月15号\b");
            f.createNewFile();
    
        }

    会创建一个空文本

    看一下这个文件或者目录在不在,返回boolean

    1 public static void main(String[] args) throws IOException {
    2         File f = new File("E:\java学习\6月15号\b");
    3         System.out.println(f.exists());
    4 
    5     }
    1 public class Demo02 {
    2 
    3     public static void main(String[] args) throws IOException {
    4         File f = new File("E:\java学习\6月15号\b\a");
    5         f.mkdirs();
    6 
    7     }
    创建多级目录文件夹,用mkdirs

    listFiles()方法

    1     public static void main(String[] args) throws IOException {
    2         File f = new File("E:\java学习\6月15号");
    3         String[] str = f.list();
    4         for(String s:str){
    5             System.out.println(s);
    6         }
    7 
    8     }
    显示此目录中文件和文件夹

    1     public static void main(String[] args) throws IOException {
    2         File f = new File("E:\java学习\6月15号");
    3         File[] str = f.listFiles();
    4         for(File s:str){
    5             System.out.println(s);
    6         }
    7 
    8     }显示路径和文件,文件夹

    注意:在获取指定目录下的文件或者文件夹时必须满足下面两个条件

    1,指定的目录必须是存在的,

    2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException

     文件过滤器

     获得一个目录下的所有文件再进行筛选

    package com.orcale.demo01;
    
    import java.io.File;
    import java.io.FileFilter;
    
    public class MFile implements FileFilter{
    
        过滤器方法
        public boolean accept(File pathname) {
            // TODO 自动生成的方法存根
            String str = pathname.getName();
            boolean flag = str.endsWith(".png");  把获取到的文件对象结尾是.png的放到数组中去
    return flag; } }
    1 public static void method02(File f){
    2         File[] f1 = f.listFiles(new MFile());  
    3         for(File f2:f1){
    4             System.out.println(f2);
    5         }
    6     }
    8 }

    递归

    自己调用自己,分为2种,直接递归和间接递归

    直接递归就是自己调用自己的方法

    间接递归是,A调用B,B调用C

    计算1-n之间的乘积,使用递归完成

    public static int method3(int n){
            if(n==1){
                return 1;
            }
            return n*method3(n-1);
        }
    }

    输出结果:System.out.println(method3(5));

    注意:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

    在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

     1 public static void method04(File f){
     2         File[] f1 = f.listFiles();
     3         for(File f2:f1){              
     4             if(f2.getName().endsWith("docx")){   先判定结尾,让递归一次调用
     5             System.out.println(f2);
     6             }
     7                 if(f2.isDirectory()){   
     8                 method04(f2);
     9                 }
    10             }
    11     }
  • 相关阅读:
    python求3的倍数与和
    linux内核优化参数
    ssh 调优参数
    mysql xtarbackup备份脚本
    mysql全库备份数据库脚本
    python json模块
    python函数介绍
    字典常用操作
    python常用字符串操作
    最好的10本适用于初学者阅读的javaScript和jQuery书籍
  • 原文地址:https://www.cnblogs.com/wangrongchen/p/9196222.html
Copyright © 2020-2023  润新知