java文件操作和IO流入门级教程_认识文件

554 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第20天,点击查看活动详情 大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:

本章目标

  • 认识文件
  • 学习文件管理
  • 学习java中的文件操作
  • 熟悉java面向字节流/字符流IO操作

认识文件

什么是文件呢?

我们先来认识狭义上的文件(file)。针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概念,就类似办公桌上的一份份真实的文件一般.

计算机中的文件就和我们现实中的文件相似! 我们一般通过硬盘存储文件! 所以我们硬盘下存储了好多文件

例如: .java文件(我们编写的java代码) .jpg文件(图片也是文件),.txt文件(文本文件).....我们硬盘下的文件还有很多.... 我们这里就不一一举例了!

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 不同的后缀名,为不同类型的文件! 所以我们需要打开查看后缀名(默认是查看不了后缀名的),便于我们知道文件的类型! 在这里插入图片描述 我们知道存储在硬盘上的就是文件,除了上面这些可以打开的文件,还有目录文件!目录(我们所说的文件夹)也是文件的一种! 在这里插入图片描述 像这些文件夹都是文件的一种!

在操作系统中,网卡也是一种文件,还有很多硬件设备都看作是文件! 键盘,鼠标,打印机等等都看做是文件,还有些软件也被当做是文件! 这样便于管理,操作同样的文件管理的代码可以操作所有的文件

文件分类

我们这里的分类站在程序员的角度! 我们将文件分为两类:

  • 文本文件 文本文件存储的是字符,我们知道一个字符,可能占多个字节单位!
  • 二进制文件 二进制文件储存的是二进制数(0/1),二进制文件中的字节是分开的!

我们刚刚还说文件有很多类...为啥现在就2类了,如何区分他们呢?

如果用记事本打开不乱码就是文本文件,打开乱码就是二进制文件! 在这里插入图片描述 可以看到jpg是二进制文件,很多文件都是二进制文件! 在这里插入图片描述word那些也是二进制文件,因为他们有一些格式,属于富文本,也就是二进制! 只有像那些txt文件才是文本文件! 在这里插入图片描述

目录结构

我们硬盘下的文件都是由文件系统管理,就是我们电脑中的文件 在这里插入图片描述 我们的文件由文件系统管理,就是我们此电脑下的硬盘! 文件是由树形结构管理!采用多叉树的形式进行管理!

在这里插入图片描述 所以通过多叉树的结构管理文件系统! 我们的叶子节点就是一个文件!而非叶子节点就是目录文件!

路径

如果我们要描述一个文件所在的位置,我们可以采用两种描述方式! 这两种描述方式是操作系统给我们提供的路径的方式,定位一个文件的位置!

  • 绝对路径 绝对路径就是电脑我们打开一个文件目录,上方所看到的路径地址! 在这里插入图片描述 在这里插入图片描述 D:\java\2022_1_13\src 这里的test.java就是在这个路径里面! 简单说就是如果这个路径第一个是盘符(C/D盘等),那么这个路径就是绝对路径,我们在电脑中任意位置都可以精准的找到这个文件! 就相当于你身份证上的地址!超详细!

  • 相对路径

相对路径,我们学过物理都知道,相对就是相对某个参考系而言,地址所在的位置!

如果我们已经知道了,你的具体某个现地址,所以只要知道你的乡,村就可以找到你的家庭地址了!

也就是我们需要有参考位置! 参考这个目录文件,你所在的路径,就是相对路径! 在这里插入图片描述 假如我们以D:\java\2022_1_13为参考地址也就是基准目录! 那么out文件如何表示呢!

./out这就表示了基准下的out相对路径了!

如果我们要找基准的父文件目录中的文件呢? 在这里插入图片描述 我们通过../的方式找到基准路径的父目录! ../2022_1_12D:\java\2022_1_13为基准路径表示2022_1_8文件位置!

  • ./ 表示当前目录!
  • ../表示上一级目录!

还有你发现一个小细节没有! 为啥路径可以用/也可以用\呢?

一般情况下用/反斜杠表示路径!

windows支持用\表示路径!但是也支持/ 可以看到windows下输出的路径都是\!!!

/便于我们编程使用,如果我们用/编译器就以为我们使用了转义字符,就比较繁琐! 在这里插入图片描述 如果要使用\我们要对\转义操作!