Java文件IO利用知识点

[复制链接]
发表于 2026-2-22 11:10:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
关于文件

        关于IO的界说

I:input输入 Output输出,这是一套人为规定的规则,下面这个图方便我们明白输入输出的界说,同一以CPU为基准



    在利用体系中实在把许多的资源都抽象成文件,我们在这里所说的文件就是"狭义"文件,寻常生存在硬盘上的文件,
        文件夹也是一种文件,我们称之为目次文件,在硬盘上存储着许多文件和目次,目次之间又存在这一套嵌套关系,这整个结构是一个树形结构N叉树,

路径

相对路径:出发点可以是恣意路径, 一个.表现当前路径的位置,两个..可以回退到上个路径
绝对路径:出发点只能是此电脑,以盘符开头      
文本文件和二进制文件  

文本文件是合法的字符串,每个字符都是合法的,文本文件中的"二进制数据"可以或许构成合法的字符,字符集有GBK,UTF8,都对应一个码表,啥样的数字就对应啥样字符,这个码表只包罗了一小部分二进制数据,这些被包罗了的字符,而且是故意义的我们称之为文本文件,另有许多没有被包罗,没故意义是一堆乱码的我们称之为二进制文件
怎样区分一个文件是文本文件(可以看懂)还是二进制文件(乱码我们看不懂):可以将文件用记事本打开即可,对后续代码编写具有告急作用
使用Java举行文件利用

1)对文件体系举行利用

创建文件,删除文件,创建目次,重定名文件 使用标准库中的File
代码演示 
绝对路径的环境


相对路径的环境





创建文件大概会抛出非常,抛出非常的缘故原由:1)非法路径,2)没有权限

可以发现当文件创建好之后会在idea中新增一个文件




2)对文件内容举行利用

读文件,写文件,打开文件,关闭文件
Java中通过"流"如许的一组类,来举行上述的文件内容利用,分为字节流和字符流
字节流utputStream,inputStream,以字节为单元,处理处罚二进制文件

InputStream是一个抽象类,不能实例化一个对象,我们必要通过子类来实例化,使这个类酿成详细的类,

我们可以通过FileInputStream来实例化对象,同时必要抛出非常,由于这个文件大概不存在

read方法有三个,第一个是每一次读取一个字节,但是返回值是int,检察一下文档表明,由于是笔墨以是是无符号Byte范围从0-255,都是正数,没有负数,以是使用int范例来做为返回值吸取,当读取到文件竣事时会返回-1作为文件竣事标记,


这个方法更高效,可以或许镌汰IO次数比起第一个方法,大大提升了服从 

close关闭文件,关闭文件也是一个核心利用,由于我们在打开文件的时间,会在利用体系内核PCB结构体中,给"文件形貌符表"中新增一个元素,这个"文件形貌符表",有详细巨细存在上限 不会主动扩容,假如内存满了再次打开文件就会失败,以是关闭文件黑白常告急的,多个线程共用同一份文件形貌符表,固然文件形貌符表也是可以举行设置的
try with resources,try内里必须是实现Closeable接口的类,主动调用close

OutStream
最告急的利用是写利用write,只要以OutStream的方式打开文件都会把之前文件内容给清空,默认方式打开会清空文件,我们要以追加的方式来打开文件,需在构造方法中把append这个参数设置为true,
字符流:Readr,Writer,以字符为单元,处理处罚文本文件
read,

write
在Java当中内部范例接纳的编码方式也会有差异,char是Unicode(2个字节)而String是utf8(3个字节),Java内部会主动转码
核心利用:1)通过构造方法打开文件,2)通过read方法来读取文件,3)通过write方法来写文件,4)通过close方法来关闭文件
关于文件IO利用的详细代码案例

案例一:搜索文件


案例二:复制文件


案例三:在文件中搜索关键字



回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表