Java IO流 01 File 类
2022/2/9 9:15:48
本文主要是介绍Java IO流 01 File 类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.1 输入输出
输入:允许程序读取外部数据(磁盘、光盘等等),和 程序运行时内存中的数据。
输出:允许程序 在运行状态时,将程序数据 输出到 各种可输出的地方。
换句话说,我们 只需要知道,输入 就是 把一些 数据 读到内存中,输出 就是 从内存中把一些数据 写到 一些地方。
为什么 上来 就要 明确的 认识以下 输入 输出呢?甚至 我们必须 下一个 比较清晰的 定义。
这是因为 Java 的 IO 对于 一些 科班C/C++ 的学生而言,并不是那么 好理解。
比如说 曾经 就有个 粉丝私信 问过我,当客户端发送数据过来的时候,为什么 要在 TCP服务端那里 先写一个 inputStream ,像这类人 其实有很多,大家不要笑。
因为很大一部分人,都是从 C/C++ 转来的。他们都是从 效果上 来 看待输入和输出的。打个比方,对于他们来说:输入 就是 单纯的 打字输入。输出 就是 直接输出。文件操作的话,有 读写的方法。所以 它们完全没有 IO流 概念。一时之间 无法进行 一个很好的 等效替换。这就使得 在理解方面比较困惑。
所以 在学习 IO 流之前 我们 必须 先 明确的 告诉你 什么 才是 输入,什么 才是输出。而并非是 只从 效果上 来 看待输入和输出。
上述那位粉丝的问题答案是:因为 这个所谓的传输数据,其实是 在客户端把数据写到了 输入流里。所以我们需要从 socket 输入流里面获取到。这是因为 我们 这些数据 都被 写入到了 这个流里。而 我们的输入 就是 拿到 数据。获取数据。并且 在 拿到是数据后,可以 创建一个 FileOutStream 把这个 数据 写到 一个 文件里。这样就可以 实现 文件的传输。
1.2 File 类
如果 是文件操作甚至是文件夹(目录)的话,你必须要 学习 File 类。
① public File(String pathname)
通过将 给定的路径字符串转换未 抽象路径来 创建 新的 File 实例。
② file.getAbsolutePath()
**返回文件的绝对 路径 **
当你 使用了 相对路径创建了 File 对象,但是 你还想知道 这个 File 的 绝对路径的话,就要用 这个 方法了。而且有些时候 我们 不可能来回的 把 这个路径 复制粘贴 来 用,当这个时候的话,我们必须要 getAbsolutePath() 返回 绝对路径的。
file.getPath()
返回 你 输入的那个路径。
file.getName()
直接 获取 到 对应的 文件名,这个方法 极其的方便,必须要 自己 写 一个 字符串的处理方法 来获取文件名了。
③ file.renameTo(待复制或重命名后的 file对象)
这里必须要 提供一个 File 对象,当 这个 File 对象 里面的 path 发生了 位置变化,那么就是 复制粘贴,如果 仅仅是 文件名 变了,那就是改名。
④ file.exists()
判断文件 是否存在
确实 这个文件 已经 被我们 改名了,肯定是 不存在的。 我们 可以很方便的 用这个 方法 来判断 文件或 目录 是否存在。
⑤ canWrite()
判断 File 对象 对应的文件和目录 是否可写
⑥ canRead()
判断 File 对象 对应的文件和目录 是否可读
⑦ isFile()
判断 File 对象 是否是文件
⑧ isDirectory()
判断 File 对象 是否是 目录
⑨ isAbsolute()
判断 在各个平台上,这个文件的路径 到底是不是 绝对路径。linux 下 以 / 开头的是 绝对路径,而 win 下 就必须是 以 盘符 开头的才是 绝对路径。
⑩ lastModified()
返回文件的 最后修改时间戳
①① length()
返回 文件内容的长度
1.2 File 类 的深入浅出
① createNewFile()
如果文件不存在,创建一个 新文件
② delete()
删除 File 对象 所对应的 文件 或 路径
③ mkdir()
试图创建 File 所对应的目录,但是 不会 创建 父目录。
④ mkdirs()
试图创建 File 所对应的目录,也 会 创建 父目录。所以大多数情况下,也都用 mkdirs() 来做一个创建目录的活。
⑤ list() 列出 File 对象 下 的 所有 子文件 和 目录路径,但只会 返回 一个 String 数组。若 后续用 File 操作,还需要 自行转为 File。
⑥ listFiles() 列出 File 对象 下的 所有 子文件 和 目录路径,但 它 会 返回一个 File 数组。
⑦ FilenameFileter
File 过滤器,将 需要保留的 文件路径 保留下来,而不需要保留的 则不保留。
String[] subList = file1.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith("exe"); } }); System.out.println(Arrays.toString(subList));
遍历 文件
public static void f(String fileName){ File file = new File(fileName); if(file.isDirectory()){ for(String fi:file.list()){ f(file.getPath() + "\\" + fi); } } if(file.isFile()){ System.out.println(file.getAbsoluteFile()); } }
这篇关于Java IO流 01 File 类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南