java的IO流——File类的实例化和常用方法

news2024/10/7 18:26:56

File类

  • File类是一个对象,代表一个文件或者文件目录
  • File类在java.io包下
  • File类中涉及到关于文件或目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作,如果需要读取或写入文件内容,必须使用IO流来完成。
  • 后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的“终点”。

File类的实例化

构造器:

1、File(String filePath)
2、File(String parentPath,String childPath)
3、File(File parentFile,String childPath)

相对路径:相较于某个路径下,指明的路径。
绝对路径:包含盘符在内的文件或文件目录的路径。

路径分隔符
路径中的每级目录之间用一个路径分隔符隔开。
路径分隔符和系统有关
windows和DOS系统默认使用"“来表示
UNIX和URL使用”/"来表示
java程序支持跨平台运行,因此路径分隔符要慎用
为了解决这个隐患,File类提供了一个常量:
public static final String separator。根据操作系统,动态的提供分隔符。
举例
在这里插入图片描述

 public void test(){
        //以下操作都在内存阶段,不涉及到磁盘文件
        //构造器1:
        File file1 = new File("hello.txt");
        File file2 = new File("C:\\study\\JAVAIO\\he.txt");

        System.out.println(file1);//hello.txt
        System.out.println(file2);//C:\study\JAVAIO\he.txt

        //构造器2:
        File file3 = new File("C:\\study","JAVAIO");
        System.out.println(file3);//C:\study\JAVAIO

        //构造器3:
        File file4 = new File(file3, "hi.txt");
        System.out.println(file4);//C:\study\JAVAIO\hi.txt
    }

File的常用方法

/*
    获取方法
     */
public void test2(){
        File file1 = new File("hello.txt");
        File file2 = new File("C:\\study\\JAVAIO\\he.txt");

        System.out.println(file1.getAbsolutePath());//获取绝对路径
        System.out.println(file1.getPath());//获取路径
        System.out.println(file1.getName());//获取名称
        System.out.println(file1.getParent());//获取上层文件目录路径。若无,返回null
        System.out.println(file1.length());//获取文件长度(即:字节数)。不能获取目录的长度。
        System.out.println(new Date(file1.lastModified()));//获取最后一次的修改时间,毫秒数,可以通过Date获取时间。

    }
 /*
    针对目录
    public String[] list():获取指定目录下的所有文件或者文件目录的名称数组
    public File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组
     */
    @Test
    public void test3(){
        File file = new File("C:\\study\\Java");

        String[] str = file.list();//返回文件名称
        for (String str1:str){
            System.out.println(str1);
        }

        File[] f = file.listFiles();//返回File对象
        for (File f1:f){
            System.out.println(f1);
        }
    }
    /*
    public boolean renameTo(File dest):把文件重命名为指定的文件路径
    比如:file1.renameTo(file2)为例:
    要想保证返回true,需要file1在硬盘中是存在的,且file2不存在。
     */
    @Test
    public void test4(){
        File file1 = new File("hello.txt");
        File file2 = new File("C:\\study\\JAVAIO\\hi.txt");

        boolean b = file2.renameTo(file1);
        System.out.println(b);


    }
    /*
    判断功能:

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


    }
    /*
    创建硬盘中对应的文件或文件目录:
    public boolean creatNewFile():创建文件,若文件存在,则不能创建,返回false
    public boolean mkdir():创建文件目录,如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。
    public boolean mkdirs():创建文件目录。如果上层文件目录不存在,一并创建。
    删除磁盘中的文件或目录
    public boolean delete():删除文件或者目录
          删除注意事项:java中的删除不走回收站。
     */
    @Test
    public void test6() throws IOException {
        //文件的创建和删除:
        File file1 = new File("hi.txt");
        if(!file1.exists()){
            file1.createNewFile();
            System.out.println("创建成功");
        }else{
            file1.delete();
            System.out.println("删除成功");
        }
        //创建目录
        File file2 = new File("C:\\study\\JAVAIO\\io");
        boolean mkdir = file2.mkdir();
        if (mkdir){
            System.out.println("创建成功");
        }

    }

main方法中绝对路径和单元测试的绝对路径不同点

public class FileTest1 {
    public static void main(String[] args) {
        File file = new File("hello.txt");//相较于当前工程,在main方法中
        System.out.println(file.getAbsolutePath());//C:\study\Java\TestProject\hello.txt

        File file1 = new File("javaIO\\hello.txt");//相较于Module,javaIO是Module名称
        System.out.println(file1.getAbsolutePath());//C:\study\Java\TestProject\javaIO\hello.txt
    }

    @Test
    public void test1(){
        File file = new File("hello.txt");//相较于当前Module,在单元测试
        System.out.println(file.getAbsolutePath());//C:\study\Java\TestProject\javaIO\hello.txt
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/842120.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Popconfirm气泡确认框(antd-design组件库)简单使用

1.Popconfirm气泡确认框 点击元素,弹出气泡式的确认框。 2.何时使用 目标元素的操作需要用户进一步的确认时,在目标元素附近弹出浮层提示,询问用户。 和 confirm 弹出的全屏居中模态对话框相比,交互形式更轻量。 组件代码来自&…

红队钓鱼技术之自解压钓鱼木马

简介 对于使用自解压文件的场景,攻击者可以创建一个自解压的exe文件,该文件解压后自动执行解压出来的文件。然后,通过插入RLO字符,将这个exe文件伪装成另一种看似安全的文件类型,比如文本文件或图片文件。当用户打开这…

深入探索Python数据容器:绚丽字符串、神奇序列切片与魔幻集合奇遇

一 数据容器:str(字符串) 1.1 字符串初识 字符串也是数据容器的一员,字符串是一种数据容器,用于存储和处理文本数据。字符串是字符的容器,一个字符串可以存放任意数量的字符,可以包含字母、数字、标点符号、空格等字…

24数据结构-图的基本概念与存储结构

目录 第六章 图6.1 图的基本概念知识回顾 6.2 图的储存结构(邻接矩阵法)1. 数组表示法(1) 有向图,无向图的邻接矩阵 2. 定义邻接矩阵的结构3. 定义图的结构4. 构造图G5. 特点 第六章 图 6.1 图的基本概念 图是一种非线性结构 图的特点&am…

火山对未来气候的影响可能超出标准估计

火山未来释放的二氧化硫可能会高于目前用于气候预测的重建历史水平。 2009 年 6 月,国际空间站上的宇航员拍摄了俄罗斯千岛群岛萨雷切夫火山的大规模喷发。 资料来源:地球物理研究快报 当火山爆发时,它们经常向大气中喷出大量的 二氧化硫。这…

爬虫011_元组高级操作_以及字符串的切片操作---python工作笔记030

获取元组的下标对应的值 注意元组是不可以修改值的,只能获取不能修改 但是列表是可以修改值的对吧

可解释性分析的一些类别(草稿)(视觉)

目录 1.交互性解释 2. 本身具有解释性的模型 3.如何将可解释性分析应用到生成模型 参考文献 视觉领域从2020年开始可以分为两块,一个是图像分类,一个是图像生成。 图像分类:输入一张图片,输出语义标签,就是这张图…

uniapp引入inconfont自定义导航栏

app,h5端引入 uniapp本身的全局设置中有个iconfontsrc属性 所以只需要 1.iconfont将需要的icon添加至项目 2.下载到本地解压后,将其中的ttf文件,放在static静态目录下 3.在page.json中对全局文件进行配置tabBar(导航图标) “iconfontSrc”: “static/font/iconfont.ttf”, …

无涯教程-Perl - bless函数

描述 此函数告诉REF引用的实体,它现在是CLASSNAME包中的对象,如果省略CLASSNAME,则为当前包中的对象。建议使用bless的两个参数形式。 语法 以下是此函数的简单语法- bless REF, CLASSNAMEbless REF返回值 该函数返回对祝福到CLASSNAME中的对象的引用。 例 以下是显示其…

​白色塑料瓶高度机器视觉测量​软硬件方案-康耐德

【检测目的】 白色塑料瓶高度机器视觉测量 【检测要求】 测量精度为1.2mm 【检测目的】 【效果及处理图片】 【方案评估】 以目前样品的图像效果及处理结果来说,我们是可以对其高度进行测量的。如果其他类型或者更高精度要求的样品,需要进行实验才能确…

Docker 快速安装 MinIO

概述 MinIO 是一款基于Go语言的高性能对象存储服务,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 拉取docker镜像 docker pull minio/minio创建宿主机数据目录(共享数据卷) 此…

2023-08-07 vmvare安装ubuntu18.04 ,安装VMware Tools后剪贴板无法共享问题

一、安装VMware Tools死活不行,不能跟主机共享粘贴板,解决方法 1.安装open-vm-toolssudo apt install open-vm-tools2.安装open-vm-toolssudo apt install open-vm-tools-desktop 二、实际操作,可以跟windows主机互相复制粘贴,非…

hdu Pair Sum and Perfect Square

题意&#xff1a; 给你一个1~n组成的排列p&#xff0c;有q个询问&#xff0c;每次询问[l,r]之间有多少对i和j满足pipj是平方数&#xff08;i<j&#xff09; 思路&#xff1a; 用树状数组来解决 先将询问的区间按右端点从小到大&#xff0c;左端点从小到大的顺序排序 我…

【Java可执行命令】(十七)JVM运行时信息动态维护工具 jinfo:一个维护 JVM 相关的配置参数和系统属性的工具,辅助故障排除、诊断和优化 ~

Java可执行命令之jinfo 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 -flags&#xff1a;查看进程的启动参数3.3 -sysprops&#xff1a;查看进程的系统属性3.4 -flag < name>&#xff1a;查看特定虚拟机参数的值3.5 -flag [/-]< name>&#xff1a;启用或禁…

查看gz文件 linux zcat file.gz mtx.gz

可以使用以下命令来查看 gz 压缩文件的内容&#xff1a; zcat file.gz 1 该命令会将 file.gz 文件解压并输出到标准输出&#xff0c;可以通过管道符将其与 grep 命令结合使用来查找需要的关键词&#xff0c;例如&#xff1a; zcat file.gz | grep keyword 1 该命令会将 file.gz…

JS进阶-Day4

&#x1f954;&#xff1a;流水不争先争滔滔不绝 JS进阶-Day1——点击此处&#xff08;作用域、函数、解构赋值等&#xff09; JS进阶-Day2——点击此处&#xff08;深入对象之构造函数、实例成员、静态成员等&#xff1b;内置构造函数之引用类型、包装类型等&#xff09; JS进…

【积水成渊】uniapp高级玩法分享

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人_python人工智能视觉&#xff08;opencv&#xff09;从入门到实战,前端,微信小程序-CSDN博客 最新的uniapp毕业设计专栏也放在下方了&#xff1a; https://blog.csdn.net/lbcy…

iOS永久签名工具 - 轻松签使用教程

轻松签是一款IOS端免费的IPA签名和安装工具&#xff0c;最新版可以不用依赖证书对ipa永久签名&#xff0c;虽然现在用上了巨魔&#xff08;TrollStore&#xff09;- 是国外iOS开发人员opa334dev发布的一款工具&#xff0c;可以在不越狱的情况下&#xff0c;安装任何一款APP。 …

Tcp是怎样进行可靠准确的传输数据包的?

概述 很多时候&#xff0c;我们都在说Tcp协议&#xff0c;Tcp协议解决了什么问题&#xff0c;在实际工作中有什么具体的意义&#xff0c;想到了这些我想你的技术会更有所提升&#xff0c;Tcp协议是程序员编程中的最重要的一块基石&#xff0c;Tcp是怎样进行可靠准确的传输数据…

docker 配置 Mysql主从集群

Docker version 20.10.17, build 100c701 MySQL Image version: 8.0.32 Docker container mysql-master is source. mys ql-replica is replication. master source. replica slave.名称叫法不一样而已。 Choose one of the way&#xff0c;与replica同步数据两种情况&…