Java I/O流 入门学习笔记 之 File

FileTest1

package IO;
//首先引用
import java.io.File;

public class FileTest1 {
    public static void main(String[] args) {
        //new File("文件路径");
        //另一种写法:File file1 = new File ("D:/code1/ab.txt");
       // File file1 = new File ("D:\\code1\\ab.txt");
        File file1 = new File ("D:"+File.separator+"code1"+File.separator+"ab.txt");
        System.out.println(file1.length());//文件大小

        File file2 = new File("D:/code1");
        System.out.println(file2.length());//文件夹本身的大小,不包括它里面的内容

        //File对象可以指代一个不存在的文件路径
        File file3 =new File("D:/code1/abcd.txt");
        System.out.println(file3.length());
        System.out.println(file3.exists());

        //相对路径(重点):不带盘符,默认是直接去工程下面寻找文件。
        
    }

}

运行结果:

FileTest2

package IO;
import java.io.File;
import java.text.SimpleDateFormat;

public class FileTest2 {
    public static void main(String[] args) {
        //1.创建一个文件对象
        File f1 =new File("D:/code1/ab.txt");

        //2.public boolean exists():判断当前文件对象,对应的文件路径是否存在,并返回false或者true
        System.out.println(f1.exists());

        //3.public boolean isFile():判断当前文件是否指代的是否是文件
        System.out.println(f1.isFile());

        //4.public boolean isDirectory():判断当前文件是否是文件夹
        System.out.println(f1.isDirectory());

        //5.public String getName():获取文件名
        System.out.println(f1.getName());

        //6.判断文件本身的大小
        System.out.println(f1.length());

        //7.public long lastModified():获取文件最后的修改时间
        long time = f1.lastModified();
        SimpleDateFormat sdf = new SimpleDateFormat("yyy/MM/dd HH:mm:ss");
        System.out.println(sdf.format(time));

        //8.public String getPath():获取创建文件对象时,使用的路径
        File f2 = new File("D:\\code1\\ab.txt");
        File f3 = new File("untitled\\src\\itheima.txt");
        System.out.println(f2.getPath());
        System.out.println(f3.getPath());

        //9.public String getAbsolutePath():获取绝对路径
        System.out.println(f2.getAbsolutePath());
        System.out.println(f3.getAbsolutePath());

    }
}

运行结果:

FileTest3:

package IO;
import java.io.File;
import java.io.IOException;

public class FileTest3 {
    public static void main(String[] args) throws IOException {

        //1.public boolean creatNewFile():创建一个新文件,创建成功返回true
        File f1 = new File("D:/code1/ha.txt");
        System.out.println(f1.createNewFile());

        //2.public boolean mkdir():用于创建文件夹,只能创建一级文件夹
        File f2 = new File("D:/code1/aaa");
        System.out.println(f2.mkdir());

        //3.public boolean mkdirs():用于创建文件夹,可以创建多级文件
        File f3 = new File("D:/code1/bbb/ccc/ddd");
        System.out.println(f3.mkdirs());

        //4.public boolean delete():删除文件,或者空文件,不能删除非空文件夹(安全性考虑/后面会学)
        System.out.println(f1.delete());
        System.out.println(f2.delete());
        File f4 = new File("D:/code1");
        System.out.println(f4.delete());

    }

}

FileTest4

package IO;
import java.io.File;
import java.util.Arrays;

public class FileTest4 {
    public static void main(String[] args) {
        //1.Public String[] list():获取当前目录下所有的”一级文件名称“到一个字符串数组中去返回
        File f1 = new File("D:/code1");
        System.out.println(f1.list());
        String[]names = f1.list();
        for (String name : names) {
            System.out.println(name);
        }
       //2.public File listFiles():(重点)获取当前目录下所有的”一级文件对象“到一个文件对象数组中去返回
        File[] files = f1.listFiles();
        for (File file : files) {
           System.out.println(file.getAbsolutePath());
       }

        //当主调是文件,或者路径不存在时,返回null
        File f = new File("D:/codew1/ab.txt");
        File[] files1 = f.listFiles();//定义了一个文件对象数组去接文件对象
        System.out.println(files1);

        //当主调是空文件夹时,返回一个长度为0的数组
        File ff = new File("D:/code1/aa");
        File[] files2 = ff.listFiles();
        System.out.println(Arrays.toString(files2));//Arrays.toString(数组名):输出数组的内容,而不是数组的地址


    }
}

运行结果:

递归RecursionTest1

package IO;

public class RecursionTest2 {
    public static void main(String[] args) {
        System.out.println(f(5));
        System.out.println(j(5));

    }

    public static int f(int n){
    //  终结点
        if(n==1){
            return 1;
        }else{
            return f (n-1)*n;
        }
    }
/***
 * 递归算法的三要素:
 * 递归的公式:f(n)=f(n-1)*n;
 * 递归的终结点:f(1)[
 * 递归的方向必须走向终结点
 */

public static int j(int n){
    if (n==1){
        return 1;
    }else{
        return j(n-1)+n;
    }
}

}

运行结果:


递归实现文件搜索RecuTest2

package IO;
import java.io.File;


public class RecursionTest3 {
    public static void main(String[] args) {
        searchFile(new File("D:/"), "死别.mp4");
    }

    /**
     * 去目录下搜索某个文件
     *
     * @param dir      目录
     * @param fileName 要搜索的文件名称
     */
    public static void searchFile(File dir, String fileName) {
        //1.把非法情况拦截
        if (dir == null || !dir.exists() || dir.isFile()) {
            return;
        }
        //2.dir不是null,存在,一定是目录对象
        //获取当前目录下的全部一级文件对象
        File[] files = dir.listFiles();

        //3.判断[当前目录]下是否存在一级文件对象,以及是否可以拿到一级文件对象
        if (files != null && files.length > 0) {
            //4.遍历全部一级文件对象
            for (File file : files) {
                //5.判断文件是否是文件,还是文件夹
                if (file.isFile()) {
                    //是文件,判断文件名是否是我们寻找的
                    if (file.getName().contains(fileName)) {
                        System.out.println("Found it:" + file.getAbsolutePath());
                        break;
                    }
                } else {
                    //是文件夹,继续重复这个过程
                    searchFile(file, fileName);
                }
            }
        }
    }
}



运行结果:

改变文件的名称

package IO;
import java.io.File;
public class Test {
    public static void main(String[] args) {
        //1.定位文件夹
        File dir = new File("D:\\code1\\bbb\\ccc\\ddd\\文本");
        //2.拿到全部的文本,一级文件对象
        File[] txts = dir.listFiles();
        //3.遍历一个个找到要改的那个文件
        for (File txt : txts) {
            //4.
            String name = txt.getName();
            String index = name.substring(0, name.indexOf("、"));//包前不包后
            System.out.println(index);
            String lastName = name.substring(name.indexOf("、"));
            System.out.println(lastName);
            String newName = (Integer.valueOf(index)+18)+lastName;//把index索引号变成整数
            //5.正式改名
            txt.renameTo(new File(txt.getParent(),newName));//拿到父路径来改新名字
        }
        String[] txtlist = dir.list();
        System.out.println(txtlist);
        for (String s : txtlist) {
            System.out.println(s);

        }
        
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值