File类详解

        在Java编程中,File类是用于表示文件系统中的文件或目录的抽象表示。它提供了一种用于访问和操作文件系统的方式。本文将详细介绍Java中的File类,包括其属性、构造方法、常用方法,并提供相关的代码示例。

1. File类的属性

File类主要有以下属性:

  • 路径:表示文件或目录在文件系统中的位置。
  • 名称:表示文件或目录的名称。
  • 父路径:表示文件或目录的父目录。

2. File类的构造方法

File类提供了多个构造方法来创建File对象,其中常用的包括:

  • File(String pathname):通过指定文件路径字符串创建File对象。
  • File(String parent, String child):通过指定父路径和子路径字符串创建File对象。
  • File(File parent, String child):通过指定父File对象和子路径字符串创建File对象。

3. File类的常用方法

File类提供了一系列常用方法来操作文件和目录,其中包括:

  • boolean exists():检查文件或目录是否存在。
  • boolean isFile():检查File对象是否代表一个文件。
  • boolean isDirectory():检查File对象是否代表一个目录。
  • boolean createNewFile():创建一个新文件。
  • boolean mkdir():创建一个新目录。
  • boolean delete():删除文件或目录。
  • String[] list():返回目录中的文件和子目录的名称数组。
  • long lastModified():返回文件或目录的最后修改时间。
  • long length():返回文件的大小(以字节为单位)。

4. 代码示例

1、观察 get 系列的特点和差异

import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File file = new File("..\\hello-world.txt"); // 并不要求该⽂件真实存System.out.println(file.getParent());System.out.println(file.getName());System.out.println(file.getPath());System.out.println(file.getAbsolutePath());System.out.println(file.getCanonicalPath());}
}

运行结果

 

2、普通⽂件的创建、删除

import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File file = new File("hello-world.txt"); // 要求该⽂件不存在,才能看System.out.println(file.exists());System.out.println(file.isDirectory());System.out.println(file.isFile());System.out.println(file.createNewFile());System.out.println(file.exists());System.out.println(file.isDirectory());System.out.println(file.isFile());System.out.println(file.createNewFile());}
}

运行结果 

 

3、普通⽂件的删除

import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File file = new File("some-file.txt"); // 要求该⽂件不存在,才能看到相System.out.println(file.exists());System.out.println(file.createNewFile());System.out.println(file.exists());System.out.println(file.delete());System.out.println(file.exists());}
}

运行结果 

 

4、观察 deleteOnExit 的现象

import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File file = new File("some-file.txt"); // 要求该⽂件不存在,才能看到相System.out.println(file.exists());System.out.println(file.createNewFile());System.out.println(file.exists());file.deleteOnExit();System.out.println(file.exists());}
}

运行结果 

程序运⾏结束后,⽂件还是被删除了 

5、观察⽬录的创建 

import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File dir = new File("some-dir"); // 要求该⽬录不存在,才能看到相同的现System.out.println(dir.isDirectory());System.out.println(dir.isFile());System.out.println(dir.mkdir());System.out.println(dir.isDirectory());System.out.println(dir.isFile());}
}

运行结果  

6、观察⽬录创建2

import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File dir = new File("some-parent\\some-dir"); // some-parent 和 soSystem.out.println(dir.isDirectory());System.out.println(dir.isFile());System.out.println(dir.mkdir());System.out.println(dir.isDirectory());System.out.println(dir.isFile());}
}

运行结果  

mkdir() 的时候,如果中间⽬录不存在,则⽆法创建成功; mkdirs() 可以解决这个问题。
import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File dir = new File("some-parent\\some-dir"); // some-parent 和 soSystem.out.println(dir.isDirectory());System.out.println(dir.isFile());System.out.println(dir.mkdirs());System.out.println(dir.isDirectory());System.out.println(dir.isFile());}
}

运行结果 

7、 观察⽂件重命名
import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File file = new File("some-file.txt"); // 要求 some-file.txt 得存在File dest = new File("dest.txt"); // 要求 dest.txt 不存在System.out.println(file.exists());System.out.println(dest.exists());System.out.println(file.renameTo(dest));System.out.println(file.exists());System.out.println(dest.exists());}
}

运行结果

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】ubuntu安装google gtest框架

本文首发于 ❄️慕雪的寒舍 ubuntu 22.04.03 LTS 安装 google gtest 框架 1.依赖项 首先在ubuntu中安装如下包 sudo apt install -y unzip g gcc cmake make automake2.下载软件包 进入google gtest的github页面,下载源码包 Releases google/googletest https…

0基础学习Mybatis系列数据库操作框架——目录结构

大纲 配置的修改代码的修改Main.java文件所在包下新增org.example.model包新增org.example.mapper包 单元测试 在《0基础学习Mybatis系列数据库操作框架——最小Demo》一文中,我们用最简单的方法组织出一个Mybatis应用项目。为了后续构建更符合日常开发环境的项目&a…

火鸟门户系统|—全景频道

全景频道功能简介 全景频道是一种可以发布和播放全景内容的功能。它可以帮助用户更好地展示360度全景图像和视频,提供更真实的沉浸式体验。 全景频道的功能 全景频道的主要功能包括: 全景发布:用户可以上传和发布全景图片和视频。全景播放…

LLM之RAG实战(三十七)| 高级RAG从理论到LlamaIndex实现

论文《Retrieval-Augmented Generation for Large Language Models: A Survey》对检索增强生成(RAG)总结了如下三种方式: Naive RAG高级RAG模块化RAG 推荐阅读该论文的详解: LLM之RAG理论(二)| RAG综述…

Mysql 常用SQL语句

1、查看mysql中所有的数据库, show databases; 2、创建库 create database 库名;(也可以用 create database if not exists 库名; 表示如果库不存在再创建) 例:create database if not exists ecology; 3、删除库 …

Git Fork后的仓库内容和原仓库保持一致

Git Fork后的仓库内容和原仓库保持一致 ①Fork原仓库内容到自己仓库 ②将项目内容下载到本地 ③使用git命令获取原仓库内容,将原仓库的最新内容合并到自己的分支上并推送 下面从第三步开始演示~ 这里以码云上的若依项目为演示项目 ③使用git命令获取原仓库内容 …

C++两种方法实现二叉搜索树

文章目录 1.二叉搜索树(BST Binary Search Tree)1.1二叉搜索树的概念2.2二叉搜索树的操作2.2.1二叉搜索树的查找2.2.2二叉搜索树的插入2.2.3二叉搜索树的删除 2.3二叉搜索树的实现2.3.1二叉搜索的基本结构2.3.2查找节点2.3.3插入节点2.3.4删除节点删除度…

百度网站收录提交入口

百度网站收录提交入口 在网站刚建立或者更新内容后,及时将网站提交给搜索引擎是提高网站曝光和获取流量的重要步骤之一。百度作为中国最大的搜索引擎之一,网站在百度中的收录情况尤为重要。下面介绍一下如何通过百度的网站收录提交入口提交网站。 1. 百…

卷积神经网络(CNN)的数学原理解析

文章目录 前言 1、介绍 2、数字图像的数据结构 3、卷积 4、Valid 和 Same 卷积 5、步幅卷积 6、过渡到三维 7、卷积层 8、连接剪枝和参数共享 9、卷积反向传播 10、池化层 11、池化层反向传播 前言 本篇主要分享卷积神经网络(CNN)的数学原理解析&#xf…

Git:修改的时候在自己的分支修改,如果在其它分支修改代码,会无法切换回自己的分支

如果已经发生了: 首先在当前分支把没问题的代码提交一下, 保存当前修改:在当前分支上进行一次提交,将当前修改保存起来。(但是不要推送到远程仓库) 切换回自己的分支:尝试切换回自己的分支。如果报错&…

新model开发记录

模型使用 -- 用blender导出为 fbx ,修改渲染方式(点击模型->Materials->Extract Materials(将材质从fbx中 单独提取出来了)->Materials 选择 Shader -> SimpleURPToonLitExample 点开脸的材质,勾选第一条) 解决角色…

深入了解C语言中的结构体类型与内存对齐

引言: 在C语言中,结构体是一种自定义的数据类型,它允许我们将不同类型的数据组合在一起,形成一个新的数据类型。结构体的使用为我们解决了一些复杂数据的表示和处理问题,不仅限于单单的整型或者字符。本文将深入探讨结…