JAVA EE:文件IO

文件基础

文件在计算机中是保存在“硬盘”中的。

操作系统在把硬盘操作进行了封装,在编程时是不会对硬盘进行直接操作的,而是通过文件进行操作硬盘的,直接通过打开文件,修改文件等操作进行简化,又通过文件资源管理器进行对文件的管理。


文件路径

通过一个路径进行描述一个文件的位置,同一台机器上文件路径得是唯一的。

从根目录开始到目标文件的每一级目录通过 \ 来区分,最后得到的就是路径。

基准 / 绝对路经:是指一盘符开头的路径,例如D \ 文件夹1 \文件夹2 \ 文件名

相对路径:是指一 . 或 .. 开头的文件路径,例如 .\文件名

文件种类

文件主要分为两个大类:
1.文本文件:文本文件里存的都是合法的字符

2.二进制文件:二进制文件里面存什么都可以

Java进行操作文件

1.文件系统操作

文件系统操作类似于创建文件,删除文件,移动文件等。

Java中提供了File这个类进行文件系统操作,构造File对象关键就是路径,通过获取到路径的file对象来操作文件或目录。

我们可以通过填写绝对路径或相对路径来进行构造对象,但是如果我们填写的是相对路径,那么他的基准目录是当前项目提示的路径,通过alt+f12就可以看到。

file中的一些方法:

上面就实现了一些方法,这里我们认识到一个新的异常IOException。

2.文件内容操作

文件内容操作分为读文件和写文件:

1)读文件:将硬盘中的内容读到内存。

2)写文件:将内存中的内存写到硬盘。

两者都是通过流(Stream)对象来实现的,Stream分为字节流和字符流

2.1字节流

2.1.1 字节流指的是以字节为基本单位,一次性最少读取一个字节。

2.1.2 里面的读操作是通过 InputStream类来实现,写操作是通过OutputStream来实现的。

2.1.3 读写二进制文件通常使用字节流。

InputStream

2.1.4 InputStream是抽象类,不能直接实例化,只能实例化继承他的子类FileInputStream;在流对象中不仅仅只是可以从文件中读写数据,也可以从网络中读取数据,这里的FileInputStream就是在文件中操作。

2.1.5在操作系统中操作文件首先要打开文件,在Java中创建一个流对象就是对应到打开文件。

2.1.6 InputStream中的核心方法read,可以读取字节返回一个整形,read一共有三个版本:

一次读一个字节,一次读一个字节数组,一次读一个字节数组但是有范围。

但是他们读完时都会返回-1。

读取一个文件并用16进制表示:

2.1.7 当操作完文件后需要将文件关闭,此时要调用close方法,否则可能会造成文件资源泄漏,导致后面文件打开失败

所以可以通过将流对象放到try()中创建,此时就可以使文件在执行完后自动关闭

OutputStream

2.1.8 OutputStream使用write进行写入,write也有三个方法实现:一个是写入一个整数,一个写入一个字节数组,一个写入字节数组但是限制了范围。

2.1.9 OutputStream进行写入后再次打开就会清空文件内容,要想保留上次的内容就要再new对象是加一个参数true,此时就可以保留上一次的内容了。

2.1.8 和Inputstream一样也是结束需要关闭文件,使用try就可以解决。

2.2字符流

字符流指的是以字符为基本单位,一次性最少读取一个字符。

里面的读操作通过Reader实现,写操作通过Writer实现。

读写文本文件通常使用字符流。

Reader也是抽象类,需要创建子类实例FileRead,核心方法read类似

Writer也是抽象类,只不过在writer的方法中可以直接写入一个字符串。

文件内容的核心是打开文件,进行读写操作,关闭文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值