2022-08-09 学习日记(29th day)File类

目录

File类

File的构造方法:

File的应用方法:

创建文件:

删除文件:

创建文件夹(目录):

创建一个路径下的某一个文件,且这个路径还不一定存在(封装工具类):


File类

在我的理解就是一个工具类,是一个操作文件的类

在学习IO流之前我们先介绍一下:

IO流就是对于文件的操作:

Input:把数据从物理内存加载到运行内存。(读文件)所谓的输入就是读文件
Output:把数据从运行内存写道物理内存。(写文件)

 计算机的输入输出都是通过二进制完成的。

我们书写文件的路径:

正斜杠:左斜杠:撇:/

反斜杠:右斜杠:捺:\

在Unix/Linux,路径的分隔采用正斜杠/,

在windows,中路径分隔采用的都是反斜杠\。

在File类中,定义了路径分隔符的常量:

File.separator-----------反斜杠:\

File.pathSeparator-----分号:;

在java里,\代表了转义字符:

\r回车
\n换行
\f走纸换页
\t横向跳格
\b退格

File的构造方法:

File file1 = new File(URI uri);URI转换为抽象路径名来创建新的File实例

File file2 = new FIle(String parent,String child);从父路径名字符串和子路径名字符串创建新的File实例

File file3 = new File(File parent,String child);从抽象路径名和子路径名字创建新的File实例。

实际操作:

File file1 =new File("C:\\summerjava");
System.out.println("file1="+file1);
File file2 = new File("C:\\summerjava","homework0713");
System.out.println("file2="+file2);
File file3 = new File(file1,"homework0713");
System.out.println("file3="+file3);

File的应用方法:

创建文件:

file.createNewFile();

创建文件的时候会抛异常:

try {
    file.createNewFile();
} catch (IOException e) {
    e.printStackTrace();
}

为什么?答:因为怕你没有上一级菜单,所以会抛异常

删除文件:

 file.delete()

删除有返回值,返回值为boolean

删除是没有异常的,如果存在就删除,不存在这个文件就拉到。

ps:file类删除时时不走回收站的

创建文件夹(目录):

file.mkdir();   //只能创建一级目录

file.mkdirs(); //可以创建多级目录

创建一个路径下的某一个文件,且这个路径还不一定存在(封装工具类):

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

public class FileUtil {

    /*
        分析:
        1.传入的路径是一个e:\\a\b\c\aaa.txt
        2.传入的路径是一个e:/a/b/c/bbb.txt
     */
    public static boolean createDirAndFile(String filepath) throws IOException {
        File file = null;
        if(filepath.contains("/")){
            if(filepath.contains("\\")){
                throw new RuntimeException("路径不合法");
            }else {
                // e:\\a\\b\\c\\a.txt
                int index = filepath.lastIndexOf("/");
                String filename = filepath.substring(index,filepath.length());
                filepath = filepath.substring(0, index+ 1);
                file = new File(filepath);
                file.mkdirs();
                // 创建文件
                File newFile = new File(filepath,filename);
                newFile.createNewFile();
                return true;
            }
        }
        if(filepath.contains("\\")){
            if(filepath.contains("/")){
                throw new RuntimeException("路径不合法");
            }else {
                // e:\\a\\b\\c\\a.txt
                int index = filepath.lastIndexOf("\\");
                String filename = filepath.substring(index,filepath.length());
                filepath = filepath.substring(0, index+ 1);
                file = new File(filepath);
                file.mkdirs();
                // 创建文件
                File newFile = new File(filepath,filename);
                newFile.createNewFile();
                return true;
            }
        }

        throw new RuntimeException("路径不合法");
    }

    public static void main(String[] args) {
//        String str = "e:\\a\\b\\c\\a.txt";
//        System.out.println(str.contains("/"));
        try {
            createDirAndFile("d");
            System.out.println("文件创建成功...");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值