JavaFile类基础知识学习笔记

B站视频指路:尚硅谷Java入门视频教程(在线答疑+Java面试真题)_哔哩哔哩_bilibili

写在前面:马上秋招,开个知识点记录贴,就当做课堂笔记吧.

File类:
        ·java.io.File : 文件和文件目录路径的抽象表示形式 与平台无关
        ·File能新建、删除、重命名文件和目录,但File不能访问文件内容本身.
                若需访问文件内容本身 则需要使用输入/输出流
        ·想要在Java程序中表示一个真实存在的文件或目录 那么必须有一个File对象,但是Java程序
                中的一个File对象,可能没有一个真实存在的文件或目录
        ·File对象可以作为参数传递给流的构造器

File类的使用
        1.File类的一个对象 代表一个文件或一个文件目录(俗称:文件夹)
        2.File类声明在java.io包下
        3.File类中涉及到的常用方法都是文件或文件目录的创建删除等 并未涉及到写入或读取文件
内容的操作  若需读写文件内容 必须使用IO流来完成
        4.后续File类的对象常会作为参数传递到流的构造器中 指明读取或写入的"终点"

如何创建File类的实例:
        1.构造器①:pubic File(String pathname)
                绝对路径:包含盘符在内的文件或文件目录的路径
                                File file = new File("xxx.txt")//相当于当前module
                相对路径:相较于某个路径下,指明的路径
                                File file = new File("D:\\xxxx\\xxxx\\xxxx\\xxx.txt")


         2.构造器②:pubic File(String parent,String child)

         3.构造器③:pubic File(File parent,String child)


 tips:路径分隔符
        如下三种方式都可以表示路径
        

File类的使用:常用方法

File类的获取功能: 后两个适用于目录

import org.junit.Test;

import java.io.File;
import java.util.Date;

public class FileTest {
    @Test
    public void test(){
        File file1 = new File("k:/IO/zk.txt");
        System.out.println(file1.getAbsoluteFile());//获取绝对路径
        System.out.println(file1.getPath());//获取路径
        System.out.println(file1.getName());//获取名称
        System.out.println(file1.getParent());//获取上层文件目录路径 若无 返回null
        System.out.println(file1.length());//获取文件长度(即:字节数) 不能获取目录的长度
        System.out.println(file1.lastModified());//获得最后一次的修改时间 毫秒值
        System.out.println("****************");
        File file2 = new File("zk.txt");
        System.out.println(file2.getAbsoluteFile());//获取绝对路径
        System.out.println(file2.getPath());//获取路径
        System.out.println(file2.getName());//获取名称
        System.out.println(file2.getParent());//获取上层文件目录路径 若无 返回null
        System.out.println(file2.length());//获取文件长度(即:字节数) 不能获取目录的长度
        System.out.println(file2.lastModified());//获得最后一次的修改时间 毫秒值
    }
}

import org.junit.Test;

import java.io.File;
import java.util.Date;

public class FileTest {
    @Test
    public void test(){
        File file1 = new File("k:/Tencent");
        String[] list = file1.list();
        for (String s:list
             ) {
            System.out.println(s);
        }
        System.out.println("****************");
        File[] file2 = file1.listFiles();
        for (File f:file2
             ) {
            System.out.println(f);
        }
    }
}

File类的重命名功能:
        比如:file1.renameTo(file2)
                要想保证返回true,需要file1在硬盘中是存在的 且file2不存在


public class FileTest {
    @Test
    public void test(){
        File file1 = new File("k:/IO/zk2.txt");
        File file2 = new File("k:/IO/zk23.txt");
        boolean renameTo = file1.renameTo(file2);
        System.out.println(renameTo);
    }
}

 File类的判断功能:


 

import org.junit.Test;

import java.io.File;
import java.util.Date;

public class FileTest {
    @Test
    public void test(){
        File file = new File("k:/IO/zk23.txt");
        System.out.println(file.isFile());//判断是否是文件
        System.out.println(file.isDirectory());//判断是否是文件目录
        System.out.println(file.exists());//判断是否存在
        System.out.println(file.canRead());//判断是否可读
        System.out.println(file.isHidden());//判断是否隐藏
        System.out.println(file.canWrite());//判断是否可写

    }
}

File类的创建和删除功能:
        创建硬盘中对应的文件或文件目录
        删除硬盘中的文件或文件目录

import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.util.Date;

public class FileTest {
    @Test
    public void test() throws IOException {
        File file = new File("k:/IO/zk.txt");
        if(!file.exists()){
            //文件的创建
            file.createNewFile();
            System.out.println("yes!");
        }else {
            //文件的删除
            file.delete();
            System.out.println("删除成功!");
        }

    }
    @Test
    public void test2() throws IOException {
        File file1 = new File("k:/IO/IO1/IO2");
        boolean mkdir = file1.mkdir();
        if(mkdir){
            System.out.println("yes");
        }
        File file2 = new File("k:/IO/IO1/IO3");
        boolean mkdir2 = file2.mkdirs();
        if(mkdir2){
            System.out.println("yes222");
        }

    }
}

 练习:

1. 

import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.util.Date;

public class FileTest {
    @Test
    public void test() throws IOException {
        File file = new File("k:/IO/sad.txt");
        //创建一个与file同目录的另外一个文件 文件名为 haha.txt
        File destFile = new File(file.getParent(),"haha.txt");
        boolean newFile = destFile.createNewFile();
        if (newFile){
            System.out.println("yes");
        }
        if(destFile.exists()){
            destFile.delete();
        }
    }

}

 new File是创建对象 createNewFile是创建实体对象
2.

import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.util.Date;

public class FileTest {
    @Test
    public void test() throws IOException {
        File file = new File("k:/IO");
        File[] files = file.listFiles();

        for (File f:files
             ) {
          if(f.toString().endsWith(".jpg")){
              System.out.println(f);
          }
        }
    }

}

String类的endwith()方法 
3.


import java.io.File;


public class FileTest {
    public static void main(String[] args) {
        FileTest fff = new FileTest();
        File file = new File("k:/IO");
        fff.print(file);
        System.out.println(fff.setSizeizeeeee(file));
    }

    private  void print(File file) {
        File[] files = file.listFiles();
        for (File f:files
        ) {
            if(f.isDirectory()){
                print(f);
            }else{
                System.out.println(f.getAbsoluteFile());

            }
        }
    }

    public void deleteeee(File f){
        //如果f是文件 直接 delete
        //如果是目录 先删掉它的下一级 再删自己
        if (f.isDirectory()){
            File[] all = f.listFiles();
            for(File ff:all){
                deleteeee(ff);
            }
            f.delete();
        }
    }
    public long setSizeizeeeee(File f){
        long size = 0;
        if(f.isFile()){
            size+=f.length();
        }else{
            File[]all = f.listFiles();
            for(File ff:all){
                size+=setSizeizeeeee(ff);
            }
        }
        return size;
    }

}

 练习:
1.创建一个与a.txt文件同目录下的另外一个文件b.txt

  File file1 = new File("k:/IO/a.txt");
  File file2 = new File(file1.getParent(),"b.txt");



 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值