JAVA中的文件操作和IO

本文详细解释了文件的狭义和广义定义,涉及文件结构、路径(包括绝对路径和相对路径)、硬盘与内存的区别,以及IO的概念和Java中的文件操作。特别提到Linux系统的“一切皆文件”思想。

什么是文件?

狭义的文件:存储在硬盘设备上的数据,以“文件”为单位,进行组织。常见的普通文件有:文本文件、图片、可执行程序、视频和音频等。文件夹也叫做“目录”,是一种特殊的文件。


文件除了有数据内容之外,还有一部分信息,例如文件名,文件类型,文件大小等,它们并不作为文件的数据而存在,我们把这部分信息可以视为文件的元信息。

如下图所示,里面显示的都是文件。

文件是通过n叉树的结构来进行组织管理的。

 广义的文件:操作系统要负责管理软硬件资源,往往会把这些资源都统一的抽象成“文件”来进行管理。比如Linux系统,就是“一切皆文件”。
 

比如,有一个网卡,就把网卡这个设备抽象成一个文件,创建特殊的文件表示网卡。从网卡接收数据,就读这个文件,往网卡发送数据就写这个文件。

如果想读取用户从键盘输入的内容,也是把键盘抽象成一个文件(stdin),读这个文件就能读到用户输入的按键内容了。

文件的绝对路径和相对路径

绝对路径:完整的路径。即从根节点出发到目标文件的路径。例如上图,数据类型与变量.pdf的文件的绝对路径就是:F:\QQDownload\JavaSE\数据类型与变量.pdf

相对路径:除了可以从根节点开始进行路径描述,我们还可以从任意结点出发,进行路径的描述。而这种描述方式就被称为相对路径。例如上图,如果我们以F:\QQDownload为初始结点出发,那么数据类型与变量.pdf的文件的相对路径就是:JavaSE\数据类型与变量.pdf。

.可以表示当前路径,所以它的相对路径也可以写成:.\JavaSE\数据类型与变量.pdf

注意:在Windows中的路径分隔符比较特殊是反斜杠“\”。但是在java中表示路径的分隔符应该用斜杠“/”。例如绝对路径应该写成是:F:/QQDownload/JavaSE/数据类型与变量.pdf。

硬盘和内存的差异

  1. 硬盘存储空间大,内存存储空间小
  2. 硬盘访问速度慢,内存访问速度快
  3. 硬盘成本比较低,内存成本比较高
  4. 硬盘是持久化存储,也就是说如果断电硬盘上的数据不会丢失,但是内存数据断电会丢失

手机上的运行内存值得就是这里的内存,运行内存越大,算力越强大,对于多个软件的同时使用也能更流畅的处理运行。

什么是IO?

I 即 Input,输入。O 即 Output输出。它是以计算机为参考系,我们从键盘往文件写入数据就叫输入,我们把文件的数据显示在显示器上叫输出。

在Java中封装了FileInputStream类(输入流)和FileOutputStream类(输出流)来对文件进行读写操作。

输入:在程序(内存)中读取外部数据(磁盘、光盘等存储设备的数据)。

输出:将程序(内存)数据输出到磁盘、光盘等存储设备中。

其余关于IO流、序列化的详解,请参考以下博客:

【Java IO完全指南】文件、流、序列化详解-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值