栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

对File的学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对File的学习

一.File的概述

File是一种抽象形式,不一定存在,可通过File中的mkdir()、mkdirs()、
creatNewFile()三种方法创建文件夹和文件。

    1.mkdir()只能一级一级的创建文件夹。
   
    2.mkdirs()可以直接创建所有文件夹。
   
    3.creatNewFile()创建的是文件
    
    4.renameTo(File dest) 改名方法,如果路径相同就是改名,路径不同便是改名并剪切
    
    补充:File中delete()方法为删除文件方法,只能一级一级删。
package FileDemoOne;

import java.io.File;
import java.io.IOException;

public class FileDemoNice {
    public static void main(String[] args) {
        File file =new File("C:\Users\86159\Desktop\untitled\src\FileDemoOne\demoTestOne");
        System.out.println("mkdir:"+file.mkdir());   //一级一级的建
        File file2 =new File("C:\Users\86159\Desktop\untitled\src\FileDemoOne\demoTestTwo\two");
        System.out.println("mkdir:"+file2.mkdirs());//可直接创建
        File file3 =new File("C:\Users\86159\Desktop\untitled\src\FileDemoOne\demoTestThree.txt");//创建文件
        try {
            System.out.println("mkdir:"+file3.createNewFile());
        } catch (IOException e) {
            e.printStackTrace();
        }

        //file2.delete(); 删除文件夹2

        File newFile2=new File("C:\Users\86159\Desktop\untitled\src\FileDemoOne\demoTestTwo\Two");
        System.out.println(file2.renameTo(newFile2));
    }
}
二.File的递归使用
1.递归就是方法中调用方法本身的现象,以简单的阶乘为例,并画出其内存图(查看断点画),可以看出递归的使用弊端,太占内存了
2.递归的关键是:知道出口条件和问题规律
3.使用递归获取文件夹下所有Java文件绝对路径,
补充:增强for循环使用前最好判断一下指针是否为空
第一点:
  public static int JieCheng(int n){
                   if(n==1){
                      return 1;
                    }else{
                 return n*JieCheng(n-1);
}
}

public static void main(){
                System.out.println(JieCheng(3));
}

内存图主要画栈内存


//第二点:
package FileDemoTwo;

import java.io.File;

public class FilePathDemo {
    public static void main(String[] args) {
        File src=new File("C:\Users\86159\Desktop\untitled\src\FileDemoOne");
        getAllJavaPath(src);
    }

    private static void getAllJavaPath(File src) {
        File[] fileArray=src.listFiles();//获取该目录下所有文件或文件夹数组
        if(fileArray!=null)
        for(File file: fileArray){ //遍历数组得到每一个对象
            if(file.isDirectory())//判断是否为文件夹
            {
                getAllJavaPath(file);
            }else{
                if(file.getName().endsWith(".java")){
                    System.out.println(file.getAbsolutePath());
                }
            }
        }
    }
}

第二点主要参考

三.FileInputStream内容叠加使用其构造方法 public FileOutputStream(File file, boolean append)
package FileInputOutputStream.CopyDemo;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyWa {
   
        public static void main(String[] args) throws IOException {
            File fileInput=new File("C:\Users\86159\Desktop\untitled\src\FileInputOutputStream\CopyDemo\Cocopy.txt");
            File fileOutput=new File("C:\Users\86159\Desktop\untitled\src\FileInputOutputStream\CopyDemo\Cocopy.txt");
            File fileIOut=new File("C:\Users\86159\Desktop\untitled\src\FileInputOutputStream\CopyDemo\Cocopy.txt");
            FileInputStream inputStream = new FileInputStream(fileInput);
            FileOutputStream copytwo = new FileOutputStream(fileOutput);
            FileOutputStream cocopy = new FileOutputStream(fileIOut, true);
            // FileOutputStream outputStreamX = new FileOutputStream("C:\Users\86159\Desktop\untitled\src\FileInputOutputStream\CopyDemo\Cocopy.txt");
            //这样会使文件Cocopy.txt内容重置,位于哪个位置就把那之前的此文件内容删的干干净净,也只删一次,我试过了。
            for (int i = 0; i <= 2; i++) {
                copytwo.write("java i love youn".getBytes());
            }//事实上循环只实行了一次,内容不叠加


            cocopy.write("java  youn".getBytes());
            cocopy.write("java  youn".getBytes());

            //事实上循环实行可多次,可叠加内容


            copytwo.close();
            cocopy.close();
            inputStream.close();
        }
    }



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/937383.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号