[Java IO] 文件的概念与相关操作

一 概念

什么是文件?
文件就是保存数据的地方。

二 文件流

文件在程序中是以流的形式来操作的。

流——数据在数据源(文件)和程序(内存)之间经历的路径。
在这里插入图片描述

  • 输入流:数据从数据源(文件)到程序(内存)的路径。
  • 输出流:数据从程序(内存)到数据源(文件)的路径。
  • 类比:喝水是输入流(水从被子到嘴巴),吐出来是输出流(水从嘴巴到被子),嘴是内存,被子是文件。以人为参照物,进入人体的是输入流,排出人体的是输出流。

File类的API可以查阅文档或者直接进入源码查看。
JDK 8 官方API:https://docs.oracle.com/javase/8/docs/api/

文件常用操作

创建文件对象相关的构造器和方法

new File(String pathname); 根据路径构建一个File对象。
new File(File parent,String child); 根据父目录文件 + 子路径构建。
new File(String parent,String child); 根据父目录 + 子路径构建。

示例代码:

package com.io.demo.file;import org.junit.jupiter.api.Test;import java.io.File;
import java.io.IOException;public class FileDemo {@Testpublic void createFile1() {File file = new File("d:\\file.txt");try {boolean result = file.createNewFile();if(result){System.out.println("file create success!");}else{System.out.println("file create fail!");}} catch (IOException e) {e.printStackTrace();}}@Testpublic void createFile2(){File file = new File("d:\\","file2.txt");try {boolean result = file.createNewFile();if(result){System.out.println("file2 create success!");}else{System.out.println("file2 create fail!");}} catch (IOException e) {e.printStackTrace();}}@Testpublic void createFile3(){File file = new File("d:\\");File file3 = new File(file,"file3.txt");try {boolean result = file3.createNewFile();if(result){System.out.println("file3 create success!");}else{System.out.println("file3 create fail!");}} catch (IOException e) {e.printStackTrace();}}}
获取文件的相关信息

File类的相关方法。

示例代码:

@Testpublic void fileInfo(){File file = new File("d:\\file.txt");System.out.println("文件名:"+file.getName());System.out.println("文件路径:"+file.getAbsolutePath());System.out.println("文件父级目录:"+file.getParent());System.out.println("文件大小:"+file.length()+" 字节");System.out.println("文件是否存在:"+file.exists());//trueSystem.out.println("是不是一个文件:"+file.isFile());//trueSystem.out.println("是不是一个目录:"+file.isDirectory());//false}

输出结果:

文件名:file.txt
文件路径:d:\file.txt
文件父级目录:d:\
文件大小:0 字节
文件是否存在:true
是不是一个文件:true
是不是一个目录:false
目录的操作和文件删除
  • mkdir 创建一级目录
  • mkdirs 创建多级目录
  • delete 删除空目录或文件

示例代码:

    /*** 创建单目录*/@Testpublic void mkdir(){File file = new File("d:\\path01");boolean result = file.mkdir();if(result){System.out.println("目录创建成功");}else{System.out.println("目录创建失败");}}/*** 创建多级目录*/@Testpublic void mkdirs(){File file = new File("d:\\path01\\path02\\path03");boolean result = file.mkdirs();if(result){System.out.println("目录创建成功");}else{System.out.println("目录创建失败");}}/*** 删除文件*/@Testpublic void deleteFile(){String filePath = "d:\\file.txt";File file = new File(filePath);if(file.exists()){boolean result = file.delete();if(result){System.out.println("删除成功");}else{System.out.println("删除失败");}}else{System.out.println("文件不存在");}}/*** 删除空目录* 目录 path01 如果是空目录,则可以删除成功;否则会失败。*/@Testpublic void deleteDirectory(){String filePath = "d:\\path01";File file = new File(filePath);if(file.exists()){boolean result = file.delete();if(result){System.out.println("删除成功");}else{System.out.println("删除失败");}}else{System.out.println("文件目录不存在");}}

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

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

相关文章

算法学习day12(动态规划)

一、不同的二叉搜索树 二叉搜索树的性质:父节点比左边的孩子节点都大;比右边的孩子节点都小; 由图片可知,dp[3]是可以由dp[2]和dp[1]得出来的。(二叉搜索树的种类和根节点的val有关) 当val为1时,左边是一定没有节点的…

React18+Redux+antd 项目实战 JS

React18Reduxantd 项目实战 js Ant Design插件官网 Axios官网 (可配置请求拦截器和响应拦截器) JavaScript官网 Echarts官网 一、项目前期准备 1.创建新项目 hotel-manager npx create-react-app hotel-manager2.安装依赖 //安装路由 npm i react-router-domnpm i aixos /…

系统架构师考点--系统安全

大家好。今天我来总结一下系统安全相关的考点,这类考点每年都会考到,一般是在上午场客观题,占2-4分。 一、信息安全基础知识 信息安全包括5个基本要素:机密性、完整性、可用性、可控性与可审查性 (1)机密性:确保信息…

【机器学习理论基础】回归模型定义和分类

定义 回归分析是研究自变量与因变量之间数量变化关系的一种分析方法,它主要是通过因变量 Y Y Y与影响它的自变量 X i X_i Xi​ 之间的回归模型,衡量自变量 X i X_i Xi​ 对因变量 Y Y Y 的影响能力的,进而可以用来预测因变量Y的发展趋势。…

基于Python/MATLAB长时间序列遥感数据处理及在全球变化、植被物候提取、植被变绿与生态系统固碳分析、生物量估算与趋势分析应用

植被是陆地生态系统中最重要的组分之一,也是对气候变化最敏感的组分,其在全球变化过程中起着重要作用,能够指示自然环境中的大气、水、土壤等成分的变化,其年际和季节性变化可以作为地球气候变化的重要指标。此外,由于…

Python3极简教程(一小时学完)下

目录 PEP8 代码风格指南 知识点 介绍 愚蠢的一致性就像没脑子的妖怪 代码排版 缩进 制表符还是空格 每行最大长度 空行 源文件编码 导入包 字符串引号 表达式和语句中的空格 不能忍受的情况 其他建议 注释 块注释 行内注释 文档字符串 版本注记 命名约定 …

WPF学习(4) -- 数据模板

一、DataTemplate 在WPF(Windows Presentation Foundation)中,DataTemplate 用于定义数据的可视化呈现方式。它允许你自定义如何展示数据对象,从而实现更灵活和丰富的用户界面。DataTemplate 通常用于控件(如ListBox、…

鸿蒙语言基础类库:【@ohos.util (util工具函数)】

util工具函数 说明: 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 该模块…

Wikijs 部署教程

以下是一个 Wikijs 部署的简单教程,涵盖了使用 Docker 和直接安装两种方式: 方法一: 使用 Docker (推荐) Docker 是一个方便快捷的方式来部署 Wikijs,它可以避免许多手动配置步骤。 安装 Docker: 按照 https://docs.docker.com/…

jvm 07 GC算法,内存池

01 垃圾判断算法 1.1引用计数算法 最简单的垃圾判断算法。在对象中添加一个属性用于标记对象被引用的次数,每多一个其他对象引用,计数1, 当引用失效时,计数-1,如果计数0,表示没有其他对象引用,…

TensorBoard ,PIL 和 OpenCV 在深度学习中的应用

重要工具介绍 TensorBoard: 是一个TensorFlow提供的强大工具,用于可视化和理解深度学习模型的训练过程和结果。下面我将介绍TensorBoard的相关知识和使用方法。 TensorBoard 简介 TensorBoard是TensorFlow提供的一个可视化工具,用于&#x…

代理模式(大话设计模式)C/C++版本

代理模式 C #include <iostream> using namespace std;class Subject // Subject 定义了RealSubject和Proxy的共用接口..这样就在任何使用RealSubject的地方都可以使用Proxy { public:virtual void func(){cout << "Subject" << endl;} };class R…

Leetcode3200. 三角形的最大高度

Every day a Leetcode 题目来源&#xff1a;3200. 三角形的最大高度 解法1&#xff1a;模拟 枚举第一行是红色还是蓝色&#xff0c;再按题意模拟即可。 代码&#xff1a; /** lc appleetcode.cn id3200 langcpp** [3200] 三角形的最大高度*/// lc codestart class Solutio…

《Linux系统编程篇》认识在linux上的文件 ——基础篇

前言 Linux系统编程的文件操作如同掌握了一把魔法钥匙&#xff0c;打开了无尽可能性的大门。在这个世界中&#xff0c;你需要了解文件描述符、文件权限、文件路径等基础知识&#xff0c;就像探险家需要了解地图和指南针一样。而了解这些基础知识&#xff0c;就像学会了魔法咒语…

【Python】数据分析-Matplotlib绘图

数据分析 Jupyter Notebook Jupyter Notebook: 一款用于编程、文档、笔记和展示的软件。 启动命令&#xff1a; jupyter notebookMatplotlib 设置中文格式&#xff1a;plt.rcParams[font.sans-serif] [KaiTi] # 查看本地所有字体 import matplotlib.font_manager a sorted…

Hologres+Flink企业级实时数仓核心能力介绍

讲师&#xff1a;骆撷冬 Hologres PD 随着业务发展&#xff0c;业务对于时效性的要求在逐渐提升。各种场景都需要实时&#xff0c;例如春晚实时直播大屏、双11 GMV实时大屏、实时个性化推荐等等多种场景&#xff0c;都对数据的时效性有着非常高的要求。随着实时需求的发展&…

MT6816磁编码IC在工控机器人中的应用

在现代工业自动化领域&#xff0c;高精度的位置检测和控制技术对于机器人系统的稳定运行至关重要。MT6816磁编码IC作为一款先进的磁传感器解决方案&#xff0c;以其卓越的性能和稳定性&#xff0c;在工控机器人中得到了广泛的应用。本文将详细探讨MT6816磁编码IC在工控机器人中…

【python数据结构精讲】双端队列

通过总结《流畅的Python》等书中的知识&#xff0c;总结Python中常用工具的方法。 deque&#xff0c;学名双端队列。 1. 常用方法 append()&#xff1a;队列尾部添加appendleft()&#xff1a;队首添加pop()&#xff1a;移除队列最后一个元素popleft()&#xff1a;移除队列第一…

在lsb.resource中设置特定用户使用特定机器运行作业失效

问题配置如下所示&#xff1a; Resolution lsb.resources文件是用于定义和配置LSF的资源的&#xff0c;资源类型基本都是消耗型资源&#xff0c;需要定义谁去消耗这些资源&#xff08;&#xff08;如MEM、SLOTS、JOBS&#xff09;&#xff09;&#xff1b;这个“谁”也就是使用…

算法015:串联所有单词的子串

串联所有单词的子串. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/substring-with-concatenation-of-all-words/ 如果是第一次接触这个题目&#xff0c;接触滑动…