zoukankan      html  css  js  c++  java
  • Java学习 之 IO流(File , 递归)

      1 /*
      2 
      3 File类的构造函数:
      4 
      5                File(File parent , String child) 根据parent抽象路径和child路径名字符串创建一个新File实例
      6 
      7                File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例
      8 
      9                File(String parent , String child) 根据parent路径名字符串和child路径名字符串创建一个新File实例
     10 
     11 */
     12 
     13 public class FileDemo{
     14 
     15      public static void main(String[] args){
     16 
     17         //将parent封装成file对象
     18 
     19         File file = new File("D:\java\day1");
     20 
     21        File f1 = new File(file , "hello.java");
     22 
     23        System.out.println(f1);
     24 
     25  
     26 
     27        File pathName = "D:\java\day1\hello.java";
     28 
     29        File f2 = new File(pathName);
     30 
     31        System.out.println(f2);
     32 
     33  
     34 
     35        File f3 = new File("D:\javaday1" , "hello.java");
     36 
     37        System.out.println(f3);
     38 
     39      }
     40 
     41 }
     42 
     43 /*
     44 
     45 File类的获取:
     46 
     47             String  getAbsolutePath()返回抽象路径名的绝对路径名字符串
     48 
     49             String getName()返回由此抽象路径名表示的文件或目录的名称
     50 
     51             String  getPath()将此抽象路径名转换为一个路径名字符串
     52 
     53             long length()返回由此抽象路径名表示的文件长度
     54 
     55 */
     56 
     57 public class FileMethodDemo{
     58 
     59      public static void main(String[] args){
     60 
     61           //创建文件对象
     62 
     63           File file = new File("Demo22.java");
     64 
     65          //获取文件的绝对路径,即全路径
     66 
     67         String path = file.getAbsolutePath();
     68 
     69         //File中封装的路径是什么获取的就是什么
     70 
     71         String paths = file.getPath();
     72 
     73        //获取文件的名称
     74 
     75         String pathname = file.getName();
     76 
     77         //获取文件的大小
     78 
     79         long size = file.length();
     80 
     81         System.out.println("path:" + path);
     82 
     83         System.out.println("paths:" + paths);
     84 
     85         System.out.println("pathname:" + pathname);
     86 
     87         System.out.println("size:" + size);
     88 
     89     }
     90 
     91 }
     92 
     93  
     94 
     95 /*
     96 
     97 文件和文件夹的创建删除:
     98 
     99                      boolean  createNewFile()当且仅当不存在具有此抽象路径名指定名称的文件时,不可分的创建一个新的空文件
    100 
    101                      boolean  delete() 删除此抽象路径名表示的文件或目录
    102 
    103                      boolean  exists()判断此抽象路径名表示的文件或目录是否存在
    104 
    105                      boolean  isDirectory() 判断此抽象路径名表示的文件是否是一个目录
    106 
    107                      boolean  isFile() 判断此抽象路径名表示的文件是否是一个标准文件
    108 
    109                      boolean  mkdir()创建此抽象路径名指定的目录
    110 
    111 */
    112 
    113 public class FileMethodDemo2{
    114 
    115     public static void main(String[] args){
    116 
    117          //对文件或者文件夹进行操作
    118 
    119         File file = new File("D:\file.txt");
    120 
    121         //创建文件,如果文件不存在则创建,true;如果文件存在则不创建,false;如果路径错误,则抛IOException
    122 
    123         boolean b1 = file.creatNewFile();
    124 
    125         System.out.println(b1);
    126 
    127         //删除文件
    128 
    129         boolean b2 = file.delete();
    130 
    131         System.out.println(b2);
    132 
    133         //判断文件是否存在
    134 
    135         boolean b3 = file.exists();
    136 
    137         System.out.println(b3);
    138 
    139  
    140 
    141        //对目录操作   创建,删除,判断
    142 
    143        File dir = new File("D:\a");
    144 
    145        //mkdir()创建单个目录,mkdirs()创建多级目录
    146 
    147        boolean b4 = dir.mkdir();
    148 
    149        System.out.println(b4);
    150 
    151       //删除目录时,如果目录中有内容,无法直接删除
    152 
    153        boolean b5 = dir.delete();
    154 
    155       //只有将目录中的内容都删除后, 保证目录为空,这时这个目录才可以删除
    156 
    157       System.out.println(b5);
    158 
    159     
    160 
    161     //判断文件,目录
    162 
    163     File f = new File("D:\java");//要判断是否是文件还是目录,必须先判断存在
    164 
    165     System.out.println(f.isFile());
    166 
    167     System.out.println(f.isDirectory());
    168 
    169     }
    170 
    171 }
    172 
    173 /*
    174 
    175 listFiles()方法
    176 
    177                   String[]  list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录
    178 
    179                   File[]   listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件
    180 
    181 注意:在获取指定目录下的文件或者文件夹时必须满足下面两个条件
    182 
    183 1,指定的目录必须是存在的
    184 
    185 2,指定的必须是目录,否则容易引发返回数组为null,出现NullPointerException
    186 
    187 */
    188 
    189 public class FileMethodDemo3{
    190 
    191      public static void main(String[] args){
    192 
    193             File dir = new File("e:\java");
    194 
    195            //获取的是目录下的当前的文件以及文件夹的名称
    196 
    197           String[] name = dir.list();
    198 
    199           for(String name : names){
    200 
    201                System.out.println(name);
    202 
    203           }
    204 
    205          //获取目录下当前文件以及文件对象,只要拿到了文件对象,那么就可以获取其中想要的信息
    206 
    207         File[] files = dir.listFiles();
    208 
    209         for(File f : files){
    210 
    211          System.out.println(f);
    212 
    213         }
    214 
    215     }
    216 
    217 }
    218 
    219 /*
    220 
    221 文件过滤器:
    222 
    223           File[]    listFiles(FilenameFilter filter)返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
    224 
    225           接口FilenameFilter实现此接口的类实例可用于过滤器文件名
    226 
    227           boolean accept(File dir , String name)测试指定文件是否包含在某一文件列表中
    228 
    229           File[] listFiles(FileFilter filter)返回抽象路径名数组,这些路径名表示抽象路径名表示的目录中满足指定过滤器的文件和目录
    230 
    231           boolean accept(File pathname)测试指定抽象路径名是否应该包含在某个路径名的列表中
    232 
    233           FilenameFilter过滤器中的accept方法接受两个参数,一个当前文件或文件夹所在的路径,一个是当前文件或文件夹对象的名称
    234 
    235           FileFilter过滤器中的accept方法接受一个参数,这个参数就当前文件或文件夹对象
    236 
    237 */
    238 
    239 public class FileDemo1{
    240 
    241     public staitc void main(String[] args){
    242 
    243             //获取扩展名为.java文件
    244 
    245            //创建File对象
    246 
    247           File file = new File("D:\java\day1");
    248 
    249           //获取指定扩展名的文件,由于要对所有文件进行扩展名筛选,因此调用方法需要传递过滤器
    250 
    251           File[] files = file.listFiles(new MyFileFilter());
    252 
    253           //遍历获取到的所有符合条件的文件
    254 
    255           for(File f : files){
    256 
    257           System.out.println(f);
    258 
    259          }
    260 
    261     }
    262 
    263 }
    264 
    265 //自定义类继承FilenameFilter过滤接口
    266 
    267 public class MyFileFilter  implements FilenameFilter{
    268 
    269          public  boolean accept(File dir , String name){
    270 
    271                    return name.endsWith(".java");
    272 
    273          }
    274 
    275 }
    276 
    277  
    278 
    279 public class FileDemo2{
    280 
    281     public staitc void main(String[] args){
    282 
    283            //创建File对象
    284 
    285           File file = new File("D:\java\day2");
    286 
    287           //获取指定扩展名的文件,由于要对所有文件进行扩展名筛选,因此调用方法需要传递过滤器
    288 
    289           File[] files = file.listFiles(new FileFilter());
    290 
    291           //遍历获取到的所有符合条件的文件
    292 
    293           for(File f : files){
    294 
    295             System.out.println(f);
    296 
    297          }
    298 
    299     }
    300 
    301 }
    302 
    303 //自定义类继承FileFilter过滤接口
    304 
    305 public class FileFilter  implements FileFilter{
    306 
    307          //文件过滤器
    308 
    309          public  boolean accept(File pathname){
    310 
    311                    return pathname.isDirectory();
    312 
    313          }
    314 
    315 }
    316 
    317  
    318 
    319 /*
    320 
    321 递归:方法定义中调用方法本身的现象;直接递归、间接递归
    322 
    323 注意实现:
    324 
    325              递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
    326 
    327              在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出
    328 
    329 */
    330 
    331 //直接递归
    332 
    333 public void methodA(){
    334 
    335         methodA();
    336 
    337 }
    338 
    339 //间接递归
    340 
    341 public void methodB(){
    342 
    343        methodC();
    344 
    345 }
    346 
    347 public void methodC(){
    348 
    349       methodB();
    350 
    351 }
  • 相关阅读:
    javaScript表单焦点自动切换
    JavaScript禁止用户多次提交方法
    javaScript事件机制兼容【整理】
    DOM元素尺寸和位置(clientwidth ,scrollwidth , offsetwidth.......)
    javaScript给元素添加多个class
    javaScript增加样式规则(新增样式)
    javaScript动态添加样式
    工作中遇到的各种jar包说明
    springboot—Jpa原生sql使用
    Des3EncryptionUtil加密与解密
  • 原文地址:https://www.cnblogs.com/z97-/p/12705389.html
Copyright © 2011-2022 走看看