【Java】文件操作和IO

❤️ Author: 老九
☕️ 个人博客:老九的CSDN博客
🙏 个人名言:不可控之事 乐观面对
😍 系列专栏:

文章目录

  • 文件
    • 概念
    • 文件的分类
    • 常见的文件类型
    • 文件系统的目录结构
    • 路径
  • Java中的文件操作
    • 文件系统相关操作
      • 绝对路径
      • 相对路径
    • 文件是否存在
      • 绝对路径
      • 相对路径
    • 文件的创建和删除
      • 创建文件
      • 删除文件
    • 创建目录
      • 创建一级目录
      • 创建多级目录
    • 输出文件
      • 通过list列出文件
      • 通过File对象来输出
      • 重命名文件

文件

概念

普通的文件是保存在硬盘上的
网卡:操作系统把这样的硬件设备也抽象成一个文件,用来简化开发。显示器、键盘都被操作系统视为文件

文件的分类

1.文本文件:我们看到的里面存储的是字符。但文本文件本质上存的是字节。
2.二进制文件:存储的是字节。
判断一个文件是不是二进制编码,用记事本打开就好。打开是乱码,就是二进制文件,不是乱码就是文本文件。
在这里插入图片描述
是乱码,就说明这个文件在存储的时候是以二进制存储的。

常见的文件类型

  1. .txt,.c,.java 都是文本文件
  2. .doc,.ppt,.exe,.zip,.class 等都属于二进制文件

文件系统的目录结构

树形结构
在这里插入图片描述

路径

1.绝对路径:以盘符开头。例如:D:\BaiduNetdiskDownload\壁纸\1月日历.png。
2.相对路径:以点或点点 开头的,其中一个点是当前路径,两个点是当前路径的父路径(上级路径)

Java中的文件操作

Java当中的文件操作,主要有两类:
1.文件系统相关的操作:就是通过“文件资源管理器”能够完成一些功能。列出目录中有哪些文件,创建文件,创建目录,删除文件,重命名文件等等,Java 当中提供了一个 File 类,通过这个类来完成上述操作,File 类就描述了文件/目录。
2.文件内容相关的操作。

文件系统相关操作

1.Java 当中提供了一个 File 类,通过这个类来完成上述操作,File 类就描述了文件/目录。
2.基于这个对象就可以实现上面的这些功能。File 的构造方法,能够传入一个路径,来指定一个文件,这个路径可以是绝对路径也可以是相对路径。
3.构造好对象,就可以通过方法来实现一些功能。

绝对路径

在使用绝对路径的时候,在 File 的构造方法中写出来就行了,建议用 反斜杠,如果是用斜杠的话,就得再用一个斜杠来转义。所以建议用 反斜杠。代码如下:

public static void main(String[] args) throws IOException {//通过绝对路径来定位。File f1 = new File("d/Test1.txt");//获取到文件的父目录System.out.println(f1.getParent());//获取到文件名System.out.println(f1.getName());//获取到文件路径System.out.println(f1.getPath());//获取到绝对路径System.out.println(f1.getAbsolutePath());//获取到绝对路径System.out.println(f1.getCanonicalPath());
}

相对路径

1.说到相对路径,一样得先明确一个“基准路径”,代码中基准路径是啥:光看代码看不出来。
2.如果是通过 IDEA 的方式来运行程序,此时的基准路径就是当前项目所在的路径。此时的 基准路径 就是项目所在路径。
3.后续还会把一个 Java 代码打成 war 包,放到 Tomcat 上面去运行。这种情况下,基准路径 就是 Tomcat 的 bin 目录

public static void main(String[] args) throws IOException {File f2 = new File("./Test1.txt");//获取到文件的父目录System.out.println(f2.getParent());//获取到文件名System.out.println(f2.getName());//获取到文件路径System.out.println(f2.getPath());//获取到绝对路径System.out.println(f2.getAbsolutePath());//获取到绝对路径System.out.println(f2.getCanonicalPath());
}

文件是否存在

绝对路径

通过绝对路径来看,文件是否存在,是否是一个目录,是否是一个普通文件:

public static void main(String[] args) {File f = new File("d:/Test1.txt");//判断文件是否存在System.out.println(f.exists());//判断文件是否是一个目录System.out.println(f.isDirectory());//判断文件是否是一个普通文件System.out.println(f.isFile());
}

相对路径

通过相对路径来看,文件是否存在,是否是一个目录,是否是一个普通文件:

public static void main(String[] args) {//换成相对路径就全是 false 了File f = new File("./Test1.txt");//判断文件是否存在System.out.println(f.exists());//判断文件是否是一个目录System.out.println(f.isDirectory());//判断文件是否是一个普通文件System.out.println(f.isFile());
}

文件的创建和删除

创建文件

通过 createNewFile 来创建文件,代码如下:

public static void main(String[] args) throws IOException {//文件的创建和删除File f = new File("./Test1.txt");System.out.println(f.exists());System.out.println("创建文件");f.createNewFile();System.out.println("创建文件结束");System.out.println(f.exists());
}

删除文件

通过 delete 方法直接删除,代码如下:

public static void main2(String[] args) {File f = new File("./Test1.txt");//删除文件,直接删除f.delete();
}

创建目录

创建一级目录

通过 mkdir 来创建目录。代码如下:

public static void main(String[] args) {File f = new File("./aaa");//创建目录f.mkdir();//说明已经创建好目录了。System.out.println(f.isDirectory());
}

在这里插入图片描述

创建多级目录

通过 mkdirs 来创建多级目录。代码如下:

public static void main(String[] args) {//创建多级目录File f = new File("./aaa/bbb/ccc/ddd");f.mkdirs();System.out.println(f.isDirectory());
}

在这里插入图片描述

输出文件

通过list列出文件

public static void main1(String[] args) {File f = new File("./");//把 ./ 目录下所有的目录全部列出来System.out.println(Arrays.toString(f.list()));
}

在这里插入图片描述

通过File对象来输出

public static void main(String[] args) {File f = new File("./");//通过 File 对象来输出。System.out.println(Arrays.toString(f.listFiles()));
}

在这里插入图片描述

重命名文件

通过 renameTo 来重命名文件。代码如下:

public static void main(String[] args) {File f = new File("./aaa");File f2 = new File("./zzz");//把 aaa 的名字改成 zzzf.renameTo(f2);
}

在这里插入图片描述


♥♥♥码字不易,大家的支持就是我坚持下去的动力♥♥♥
版权声明:本文为CSDN博主「亚太地区百大最帅面孔第101名」的原创文章

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

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

相关文章

【Linux】多路IO复用技术①——select详解如何使用select模型在本地主机实现简易的一对多服务器(附图解与代码实现)

这一篇的篇幅可能有点长,但真心希望大家能够静下心来看完,相信一定会有不小的收获。那么话不多说,我们这就开始啦!!! 目录 一对一服务器中的BUG 如何实现简易的一对多服务器 实现简易一对多服务器的大体…

前端css介绍

CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素。 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。 CSS语法 CSS实例 每个CSS样式由两个组成部分:选择器和…

使用Qt Installer Framework将自己的程序打包成安装包程序

使用Qt Installer Framework将自己的程序打包成安装包程序 制作安装包程序就是将自己的程序打包成一个可执行的exe,双击之后进行安装。 1. 在制作安装包程序之前需要安装qt官方提供的安装包制作工具Qt Installer Framework 去qt官方网址,下载对应的 Q…

HNU-计算机网络-实验1-应用协议与数据包分析实验(Wireshark)

计算机网络 课程基础实验一 应用协议与数据包分析实验(Wireshark) 计科210X 甘晴void 202108010XXX 一、实验目的: 通过本实验,熟练掌握Wireshark的操作和使用,学习对HTTP协议进行分析。 二、实验内容 2.1 HTTP 协议简介 HTTP 是超文本…

89 柱状图中最大的矩形

柱状图中最大的矩形 类似接雨水(反过来,相当于找接雨水最少的一段)题解1 暴力搜索(超时) O ( N 2 ) O(N^2) O(N2)另一种 题解2 单调栈【重点学习】常数优化 给定 n 个非负整数,用来表示柱状图中各个柱子的…

python调用飞书机器人发送文件

当前飞书webhook机器人还不支持发送文件类型的群消息,可以申请创建一个机器人应用来实现群发送文件消息。 创建机器人后,需要开通一系列权限,然后发布。由管理员审核通过后,才可使用。 包括如下的权限,可以获取群的c…

1. PPT高效初始化设置

1. PPT高效初始化设置 软件安装:Office 2019 主题和颜色 颜色可以在白天与黑夜切换,护眼 切换成了黑色 撤回次数 撤回次数太少,只有20次怎么办 自动保存 有时忘记保存就突然关闭,很需要一个自动保存功能 图片压缩 图…

OpenCV 笔记(4):图像的算术运算、逻辑运算

Part11. 图像的算术运算 图像的本质是一个矩阵,所以可以对它进行一些常见的算术运算,例如加、减、乘、除、平方根、对数、绝对值等等。除此之外,还可以对图像进行逻辑运算和几何变换。 我们先从简单的图像加、减、逻辑运算开始介绍。后续会有…

使用Objective-C和ASIHTTPRequest库进行Douban电影分析

概述 Douban是一个提供图书、音乐、电影等文化内容的社交网站,它的电影频道包含了大量的电影信息和用户评价。本文将介绍如何使用Objective-C语言和ASIHTTPRequest库进行Douban电影分析,包括如何获取电影数据、如何解析JSON格式的数据、如何使用代理IP技…

轻松搭建Nextcloud私有云盘并实现远程访问【内网穿透】

文章目录 摘要1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 摘要 Nextcloud,它是ownCloud的一个分支,是一个文件共享服…

搜维尔科技:scalefit生物力学人体工学软件分析!

人体工程学分析 21加载参数和头像显示 识别(隐藏的)健康风险 根据DGUV交通灯进行生物反馈(DIN/ISO) 实时应力分析 三维空间可视化 静态/动态肩载 用左/右赋值加载输入 腰椎间盘压缩计算 距离和定时器显示 带有运动跟踪的化身/视频叠加 外骨骼与CAD工作站仿真 CSV原始…

不只保护隐私的防窥膜,还是屏幕的小铠甲

电脑防窥膜这种东西确实很实用,尤其是那些经常在公共场所用笔记本的朋友,更是需要这张贴膜的保护,不过虽然现在市面上这种防窥膜种类繁多,但是产品质量良莠不齐。有些防窥膜虽然有防窥效果,但透光率下降太多了&#xf…