Java学习之File类

File类

1. 文件路径

import java.io.File;public class DemoFile1 {public static void main(String[] args) {// 选择路径时,从当前磁盘的根路径开始String path = "D:\\workspace\\java\\data\\students.txt";File file = new File(path);System.out.println(file.exists());  // true  当前路径被读取到了.../*TODO 为了解决代码的移植问题 需要使用相对路径相对路径是从当前项目的根路径开始的*///        String path2 = ".\\data\\students.txt";
//        String path2 = "data\\students.txt";
//        String path2 = "data\students.txt"; // 错误,单个的\表示有转义 具有特殊含义 \\ 可以消除其转义表示一个 \String path2 = "data/students.txt";  // 上述斜杠编写麻烦于是添加了 反斜杠File file2 = new File(path2);System.out.println(file2.exists()); // trueString path3 = "data";String fileName ="students.txt";File file3 = new File(path3, fileName);System.out.println(file3.exists());}
}

2. 文件、目录的创建、删除和重命名

import java.io.File;
import java.io.IOException;public class DemoFile2 {public static void main(String[] args){/*创建功能public boolean createNewFile() 创建文件public boolean mkdir()  创建目录public boolean mkdirs()  创建多级目录删除功能public boolean delete() 删除路径中最后一层的目录或文件重命名功能public boolean renameTo(File dest)*/String filePath = "data/data.txt";File file = new File(filePath);if (!file.exists()) {try {// 创建文件file.createNewFile();  // 直接调用会报错,错误的指示是在方法名之上} catch (IOException e) {throw new RuntimeException(e);}}String dirPath = "data/dir";File file1 = new File(dirPath);
//        file1.createNewFile();file1.mkdir();  // 创建目录时,要保证当前目录下没有同名的文件或目录String dirPath2 = "data/dir1/next_dir";File file2 = new File(dirPath2);
//        file2.mkdir(); // 没有生效,next_dir目录必须要现有 dir1目录file2.mkdirs();file2.delete();//注:传入的是一个指明了路径的匿名File对象file1.renameTo(new File("data/dir2"));}
}

3. File类方法

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;public class DemoFile3 {public static void main(String[] args) {/*判断功能public boolean isDirectory()public boolean isFile()public boolean exists()public boolean canRead()public boolean canWrite()public boolean isHidden()*/File dirFile = new File("data/dir1");System.out.println(dirFile.isDirectory()); // trueFile dataFile = new File("data/data.txt");System.out.println(dataFile.isFile());System.out.println(dataFile.canRead()); //System.out.println(dataFile.canWrite());// 对于Linux平台 隐藏文件表示为 .文件名System.out.println(new File("data/.file").isHidden()); // true/*基本获取功能public String getAbsolutePath()public String getPath()public String getName()public long length()public long lastModified()*/System.out.println(dataFile.getAbsoluteFile()); // 全路径System.out.println(dataFile.getPath()); // 相对路径System.out.println(dataFile.getName()); // 文件名System.out.println(dataFile.length()); // 文件长度System.out.println(dataFile.lastModified()); // 最后一次修改时间  => 1714381721534 毫秒// 格式化展示 yyyy-MM-dd HH:mm:ssDate date = new Date(dataFile.lastModified());SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println(simpleDateFormat.format(date));/*高级获取功能public String[] list()public File[] listFiles()*/File data = new File("data");//File.list()返回的是当前文件目录下所有文件和目录的文件名,返回的是String数组String[] list = data.list();System.out.println(Arrays.toString(list)); // [.file, data.txt, dir1, dir2, score.txt, students.txt]// 数组 File//data.listFiles():得到的是一个 File 类型的数组,返回的是"data"目录中的文件和目录File[] files = data.listFiles();for (File file : files) {System.out.println(file.getAbsoluteFile());}System.out.println("----------------");File[] files2 = data.listFiles();for (File file : files2) {String path = file.getAbsolutePath();//endsWith():用于测试字符串是否以指定的后缀结束。if (path.endsWith(".jpg")) {System.out.println(path);}}}
}

4. File类中list()方法

package com.shujia.day11_SQL_Exception_File;import java.io.File;
import java.io.FilenameFilter;public class Demo11File {public static void main(String[] args) {File data = new File("data");/*TODO 源码:public String[] list(FilenameFilter filter) {String names[] = list();// 如果当前 names是空 或者过滤器没有定义 则返回空的if ((names == null) || (filter == null)) {return names;}// 创建新的ArrayListList<String> v = new ArrayList<>();// 遍历所有的data中的文件及目录的名称for (int i = 0 ; i < names.length ; i++) {// 调用自定义过滤器中的accept方法 将当前的 data对象传入第一个参数 names[i] 表示每一个文件名if (filter.accept(this, names[i])) {// 如果判断结果为true 将当前文件名添加到 ArrayList 中v.add(names[i]);}}// 将ArrayList转成数组return v.toArray(new String[v.size()]);}*/String[] list = data.list(new FilenameFilter() {// accept 表示接收一个元素的数据 类型为 File@Overridepublic boolean accept(File dir, String name) {return name.endsWith(".jpg");}});for (String s : list) {System.out.println(s);}}
}

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

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

相关文章

2024年可以做的网上兼职有哪些?10个正规赚钱软件平台分享

在数字化浪潮席卷全球的今天&#xff0c;兼职工作早已不再局限于传统的线下模式。只要有一部手机或电脑&#xff0c;你就能轻松开启兼职之旅&#xff0c;实现躺着也能赚钱的梦想&#xff01; 接下来&#xff0c;就让我们一起看看2024年那些靠谱又有趣的网上兼职项目吧&#xff…

谷歌插件V3知识点

1.background.js与content.js与popup.js对比: background.js 生命周期:一开始就执行&#xff0c;最早执行且一直执行&#xff1b; 作用&#xff1a;放置全局的、需要一直运行的代码&#xff0c;权限非常高几乎调用所有Chrome api,还可以发起跨域请求&#xff1b; content.js 生…

STK12 RPO模块学习 (1)

一、背景介绍 在STK12中&#xff0c;在Astrogator的模块上开发了新的模块&#xff08;Rendezvous and proximity operations)。轨道交会接近通常来说是一个很复杂的过程。RPO实现需要对轨道动力学有一个清晰的理解&#xff0c;并且对于Astrogator模块具备很强的背景和经验&…

2024最新软件测试【测试理论+ Linux】面试题(内附答案)

一、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段&#xff1a;需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样&#xff0c;之后我们会有一个需求澄清会议&#xff0c; …

Kaspa是潜力金吗?那么如何获取,以bitget钱包为例

$KAS 这个币比较小众&#xff0c;华语区知道的不多&#xff0c;目前挖这个币的矿工也不多&#xff0c;但是大家都有一个默契&#xff0c;就是尽量不要宣传&#xff0c;先建设生态&#xff0c;自私的心理就是&#xff1a;自己先多挖些币。 简单介绍一下 #KASPA 这个项目&#x…

理解安卓系统的三个时间

安卓设备有三种不同的可用时钟&#xff1a; System.currentTimeMillis()SystemClock.uptimeMillis()SystemClock.elapsedRealtime() 一、System.currentTimeMillis() System.currentTimeMillis()是一个标准的“墙”时钟(时间和日期)&#xff0c;表示从纪元到现在的毫秒数。该…

[算法][BFS][leetcode]994. 腐烂的橘子

题目地址 https://leetcode.cn/problems/rotting-oranges/description/ 错误解法 class Solution {public int orangesRotting(int[][] grid) {//层序遍历int ans 0;for (int i 0;i<grid.length;i) {for(int j 0;j<grid[0].length;j){boolean flag false;if(grid[i][j…

C++中匿名对象介绍及使用场景详解

在C中&#xff0c;匿名对象是一种特殊的对象&#xff0c;它没有被命名&#xff0c;通常用于执行一系列操作或调用某个函数&#xff0c;而不需要将结果存储到变量中。使用匿名对象的场景通常是当只需要临时使用一个对象而不需要再次引用它时。 匿名对象的创建非常简单&#xff…

【光线重塑技术】小姐姐,美得不可方物——lllyasviel/ic-light

在英伟达自18年宣布光追技术之后&#xff0c;RTX显卡也成了目前Steam游戏的常客。就连 AMD、Intel 和 Apple Silicon 都宣布要在GPU上支持光追算法。这次我要介绍的是huggingface上比较火的relight技术—— ic-light 介绍 IC-Light 是一个操纵图像照明的项目。 IC-Light &qu…

媒体宣发:多元宣发方式的方式有哪些

在信息爆炸的今天&#xff0c;媒体宣发被广泛地运用在各个领域&#xff0c;对于产品宣传、企业形象塑造等都起着至关重要的作用。多样化的媒体宣发方式越来越受到企业的重视&#xff0c;那么常见的媒体宣发方式有哪些呢&#xff1f; 首先&#xff0c;新闻发布是最传统也是最直…

3分钟,学会一个 Lambda 小知识之【流API】

之前给大家介绍的 Lambda 小知识还记得吗&#xff1f;今天再来给大家介绍&#xff0c; 流API 的相关知识要点。 流API Stream是Java8中处理集合的关键抽象概念&#xff0c;它可以指定你对集合的&#xff0c;可以执行查找、过滤和映射等数据操作。 Stream 使用一种类似用 SQ…

插入排序(Insertion Sort)

插入排序&#xff08;Insertion Sort&#xff09;是一种简单直观的排序算法&#xff0c;它的工作原理如下&#xff1a; 将数组分为已排序部分和未排序部分&#xff1a;初始时&#xff0c;已排序部分仅包含数组的第一个元素&#xff0c;其余元素被视为未排序部分。 从未排序部分…

使用sqlmodel实现唯一性校验2,插入之前检查是否已存在

虽然之前添加唯一性校验的方法能够解决数据唯一的问题&#xff0c;但是如果忘了处理异常&#xff0c;则可能会导致程序崩溃。 在此基础上&#xff0c;我们可以在插入数据之前检查该数据是否已存在。 原来的代码&#xff1a; from sqlmodel import Field, Session, SQLModel,…

leetcode题目122

买卖股票的最佳时机 Ⅰ 中等 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回 你能…

【opencv】图像处理(一)

实验环境&#xff1a;anaconda、jupyter notebook 实验用到的包&#xff1a;numpy,matplotlib,opencv 一、opencv安装 最好使用python3.6&#xff08;我之前用的3.9安装opencv3.4.1.15会失败&#xff09; conda create -n cv python3.6安装opencv3.4.1.15&#xff08;3.4.2版…

深度伪造音频普遍检测的Codecfake数据集和对策

基于音频语言模型&#xff08;ALM&#xff09;的深度伪造音频的扩散&#xff0c;出现了对其负面影响的担忧。如&#xff0c;这项技术可能被用于传播错误信息和虚假新闻&#xff0c;迫切需要有效的检测方法。与通常涉及多步骤过程并以声码器使用结束的传统深度伪造音频生成不同&…

DS高阶:B树系列

一、常见的搜索结构 1、顺序查找 时间复杂度&#xff1a;O(N) 2、二分查找 时间复杂度&#xff1a;O(logN) 要求&#xff1a;&#xff08;1&#xff09;有序 &#xff08;2&#xff09;支持下标的随机访问 3、二叉搜索树&#xff08;BS树&#xff09; 时间复杂…

【Linux】文件描述符和重定向

目录 一、回顾C文件 二、系统文件I/O 2.1 系统调用 open 2.2 标志位传参 2.3 系统调用 write 2.4 文件描述符fd 2.5 struct file 2.6 fd的分配规则 2.7 重定向 2.7.1 基本原理&#xff1a; 2.7.2 系统调用 dup2 2.8 标准错误 一、回顾C文件 文件 内容 属性 对…

Python 被广泛用于编写测试脚本、与各种测试框架和工具集成,以及进行性能测试、安全测试等

Python 是一种非常适合自动化测试的语言&#xff0c;因为它易于学习、语法简洁且拥有庞大的社区和丰富的库支持。在自动化测试领域&#xff0c;Python 被广泛用于编写测试脚本、与各种测试框架和工具集成&#xff0c;以及进行性能测试、安全测试等。 以下是一些 Python 自动化…

leetcode刷题:买卖股票的最佳时机

题目 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大…