zoukankan      html  css  js  c++  java
  • file类

    File:
    * 文件: file, 用来存储具体的数据的.
    * 目录(文件夹): directory, 用来存储文件或者文件夹
    * 路径: path, 表示文件或者文件夹的位置
    *
    * File类: 用来表示文件或者文件夹在电脑或者项目中的位置的类;与系统环境无关(平台无关性,在任何平台使用是一样的步骤)
    * 1. 导入包, import java.io.File;
    * 2. 获取对象,构造方法
    * 3. 使用,成员方法,成员变量
    *
    * 静态成员变量
    * File.pathSeparator; 表示路径与路径之间的分隔符
    * File.separator; 文件夹和文件或者文件夹之间的分割



    * File类的构造方法:
    * 1. public File(String pathName); 根据一个字符串路径创建对象
    * 2. public File(String parent, String child); 根据两个字符串路径创建对象
    * 3. public File(File parent, String child); 根据file对象和字符串子路径创建对象
    *
    * 路径分为两种:
    * 相对路径: 以文件夹作为基准, java\aaa bbb\aaa
    * 绝对路径: 以电脑的盘符作为基准, 比如: C:\Users\sszz\Desktop
    *
    * 注意点:
    * 1. 如果文件之间的分割是以反斜杠作为分割,需要写上两个反斜杠\, 如果以正斜杠,只需要写一个即可 /
    * 2. File对象进行输出的时候不是地址值,说明已经覆盖了Object中的toString方法, JDK中的大部分类都这样
    * 3. 使用File去创建对象的时候仅仅是,以字符串构建了一个路径而已,无所谓字符串路径存不存在.

    * File类中常用方法之创建方法;
    * 1. public boolean creatNewFile(); 创建一个文件,如果文件存在不能创建,不存在则创建成功
    * 2. public boolean mkdir(); 创建一个单级文件夹(目录)
    * 3. public boolean mkdirs(); 创建多级文件夹, 可以代替上面的创建单级的方法
    *
    * 注意: 不能以文件是否有后缀来区分是否是文件或者文件夹

    * File类中的成员方法之判断方法:
    * 1. public boolean exists(); 判断文件或者文件夹是否存在
    * 2. public boolean isFile(); 判断是否是文件
    * 3. public boolean isDirectory(); 判断文件夹

    * File类的成员方法之获取方法:
    * 1. public String getName(); 获取文件或者文件夹的名字
    * 2. public String getPath(); 获取文件或者文件夹的路径
    * 3. public long length(); 文件的字节大小
    * 4. public String getParent(); 获取文件或者文件夹的父路径
    * 5. public File getParentFile(); 获取文件或者文件夹的父路径,以File形式返回
    * 6. public String getAbsolutePath(); 获取绝对路径
    * 7. public File getAbsoluteFile(); 获取绝对路径, 以File形式返回

    * File类中的获取列表的方法:
    * 1. public static File[] listRoots(); 获取所有的根目录(盘符)
    * 2. public String[] list(); 获取到对象中路径下所有的文件或者文件夹的名字
    * 3. public File[] listFiles(); 获取到对象中路径下的所有文件或者文件夹,全路径
    *
    * 可以使用增强for的容器:
    * 1. 数组
    * 2. Collection集合体系


    *********** * 使用过滤器,获取指定的文件
    * File类中的过滤器方法:
    * public File[] listFiles(FileFilter filter); 传入一个过滤器参数进行
    *
    * FileFilter是一个接口,不能直接创建对象,有两种使用使用方式:
    * 1. 定义一个实现类, 重写接口中的抽象方法
    * a.定义一个类, 实现FileFilter接口
    * b.重写accept抽象方法
    * c.在accept中编写过滤逻辑
    *
    * 2. 使用这个接口的匿名内部类
    * a. 创建一个匿名内部类,FileFilter的
    * b. 重写accept方法
    * c. 在accept方法中编写过滤逻辑
    *
    *
    * 匿名内部类的格式:
    * 接口/抽象类 变量名 = new 接口/抽象类(){
    * // 重写接口或者是抽象类中的抽象方法
    * };


    * File类中的成员方法之删除方法
    * 1. public boolean delete(); 删除文件或者文件夹
    *
    *
    * 注意点:
    * 1.如果文件夹中还有内容,不能删除
    * 2.删除的过程不走回收站,操作需谨慎!


    * 递归: 并不是一个开发技术, 而是一种编程经验
    * 代码解释: 方法自己调用自己, 一旦调用的层级结构过深之后,容易出现栈内存溢出: StackOverflowError

    package cn.itcast.demo01;
    
    import java.io.File;
    
    /*
    * 使用递归方式,求: 1+2+3...+100的和!
    * 
    * 练习:
    * 使用递归的方式求: 10! = 10*9*8*7*....*1
    */
    public class Demo12DiGuiPractice {
    
    public static void main(String[] args) {
    
    // 普通方式求100的和
    System.out.println(getSum(100));
    
    // 使用递归方式求1-100的和
    System.out.println(getSum2(100));
    
    // 使用递归方式求1*2*3*..10的积
    System.out.println(getJieCheng(10));
    }
    
    /*
    * 使用递归的方式求: 10! = 10*9*8*7*....*1
    */
    public static int getJieCheng(int n){
    
    return n ==1 ? 1 : n*getJieCheng(n-1);
    }
    
    /*
    * 使用递归方式求出: 1+2+3...+100的和!
    * 100 + (100-1) + (99-1) + (98-1) +....1
    */
    public static int getSum2(int n){
    
    if(n == 1){
    return 1;
    }else{
    return n + getSum2(n-1);
    }
    }
    
    // 普通方式实现求和
    public static int getSum(int n){
    int sum = 0;
    for (int i = 1; i <= n; i++) {
    sum += i;
    }
    return sum;
    }
    }
    
     
    人生就像一场路途,尝遍酸甜苦辣,方知人生苦甜.
  • 相关阅读:
    Delphi下遍历文件夹下所有文件的递归算法
    mysql + unidac 使用事务例子
    新建DataSnap REST Application
    ClientDataSet中的错误处理
    TSQLConnection的事务处理
    ClientDataSet的查找和过滤功能
    TField中的GetText和SetText
    ClientDataSet中撤消与恢复操作及执行细节
    ClientDataSet中动态添加计算字段并用计算字段显示记录的UpdateStatus
    ClientDataSet中动态添加计算字段
  • 原文地址:https://www.cnblogs.com/zennon/p/8290051.html
Copyright © 2011-2022 走看看