在第二周的学习中,我也学到了IO流,这应该是属于学习后端的基础,学习好IO流,才可以进行后面后端的学习与开发,在学习中总是感觉这些IO流的知识有些杂乱,还有点重复,那么什么是IO流呢。
Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。 而流是一组有序,有起点和有终点的数据序列,其本质就是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。通过读取和写下,可以将文件中的数据进行传输,可以从一个文件传递到另一个文件中。
首先的就是File类,java.io.File
类是文件和目录路径名的抽象表示。File类是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹,主要可以用于文件和目录的创建、查找和删除等操作。它通过File中的方法进行创建构造新的文件,如图
通过指定文件的路径来进行创建,在相同路径下有相同的文件夹就是创建失败,创建的例子如图
、这是常用的三个创建文件的方法。、
在IO流中还有一些获取,判断,创建文件的方法。
一.获取功能
public String getAbsolutePath() : 返回此File的绝对路径名字符串。
public String getPath() : 将此File转换为路径名字符串。
public String getName() : 返回由此File表示的文件或目录的名称。
public long length() : 返回由此File表示的文件的长度。
public long lastModified() : 获取最后一次的修改时间,毫秒值
二.判断功能
public boolean isDirectory() : 判断是否是目录
public boolean isFile() : 判断是否是文件
public boolean exists() : 判断是否存在
public boolean canRead() : 判断是否可读
public boolean canWrite() : 判断是否可写
public boolean isHidden() :判断是否隐藏
三.创建功能
public boolean createNewFile(): 创建文件 如果存在这样的文件,就不创建了
public boolean mkdir() :创建文件夹 如果存在这样的文件夹,就不创建了
public boolean mkdirs() : 创建文件夹,如果父文件夹不存在,会帮你创建出来
在这里解释一下绝对路径和相对路径
-
绝对路径:从盘符开始的路径,这是一个完整的路径。如:
e\\demo.a.txt
。 -
相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。如:
a.txt
。
接下来就是IO流了IO流又分为字节流和字符流,字符流和字节流有什么区别呢,接下来我介绍一下
字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 字节流和字符流的区别:
读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
以上就是字节流和字符流的不同之处,每个流又分为输入流和输出流。
字节流主要就是输入和输出字节数据,而有时候文件中会有中文,字节流就无法输出,这时候就需要字符流来输入和输出。
字节流和字符流中的具体方法就不一一介绍了,因为实在太多了,这周的总结就是如此了