欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

我的Java SE总结(八)

程序员文章站 2022-07-14 20:25:20
...

文件与IO流

一、文件
文件相关概念
文件:计算机文件是以计算机硬盘为载体存储在计算机上的信息集合[二进制数据]
文件夹:由于在一个文件夹下面不能够有两个名字一样的文件(A.txt a.txt 也是不能同时存在的)或者文件夹,所以文件夹主要目的分割不同区域,分别存储文件,避免文件名冲突

File类
概念
对于计算机磁盘的文件和目录,Java提供了对应的一个类File来描述。
作用
通过File类创建、删除文件和文件夹,查找特定的文件并进行操作。
构造方法

File(String pathname) pathname
		根据文件名创建一个File对象,pathname如果有后缀就是一个文件对象,如果没有后缀会默认为是一个文件夹对象
		1. 相对路径:相对于当前Java类的项目
		2. 绝对路径:从根目录或者盘符开始	/都表示从根目录或者盘符开始
File(String parent, String child)
		在父级目录下创建一个文件或文件夹           
		 parent:父级目录		
		 child:当前目录或者当前文件
File(File parent, String child)
		在父级目录(以文件对象作为参数)下创建一个文件或文件夹

基本方法
创建文件

boolean createNewFile()

创建文件夹

boolean mkdir()

删除文件和目录

boolean delete() //如果删除文件夹则必须是空文件夹

判断是否为一个目录

boolean	isDirectory()

判断是否为一个文件

boolean isFile()

判断文件或目录是否存在

boolean exists()

list方法
列出可用的文件系统根(操作系统上面的盘符)

static File[] listRoots()

返回当前的文件夹对象下面一层的所有的文件(文件夹)的名字

String[] list()

返回当前的文件夹对象下面一层的所有的文件(文件夹)(File对象的形式

File[] listFiles()

文件名过滤器
概念
File中提供了可以达到过滤效果的方法,我们可以在调用的时候指定具体的过滤器来得到我们想要的一个目录下面的东西。由于我们想要什么东西Java本身不知道的,所有它仅仅给我们提供了一个过滤器的接口(FilenameFilter, FileFilter)而已,需要我们自己自定义实现过滤器接口来定义过滤器类
使用方法
在list方法的参数中使用匿名内部类FilenameFilter,并按照业务需求重写accept方法

二、IO流
概念
“输入输出(IO)是指计算机同任何外部设备之间的数据传递。常见的输入输出设备有文件、键盘、打印机、屏幕等。数据可以按记录(或称数据块)的方式传递,也可以 流的方式传递 所谓记录,是指有着内部结构的数据块。

字节流
分类
输入流:FileInputStream
输出流:FileOutputStream
使用场景
处理除了文本、文字相关所有的流问题

字符流
分类
输入流:FileReader
输出流:FileWriter
使用场景
使用于处理文本相关的数据

转换流
分类
输入流:InputStreamReader(InputStream in)
输出流:InputStreamReader(InputStream in, String charsetName)
使用场景
提供了字节流,而需要处理文本数据,这时候,就需要用转换流转换一下,更方便处理文本数据

缓冲流
概念
提高读取和写出效率的流。
使用场景
任何情况下都要使用缓冲流进行包装,以提高读写效率。
分类
输入流:BufferedInputStream,BufferedReader
输出流:BufferedOutputStream,BufferedWriter

随机读写文件
概念
支持随机访问文件内容和随机读取文件内容
作用
1.断点续传
2.判断空间是否充足,占用空间
3.多线程上传下载
构造方法

1.RandomAccessFile(String name, String mode)  
		 		//创建随机访问文件流,以从中指定名称的文件读取,并可选择写入文件。 
2.RandomAccessFile(File file, String mode) 
				//创建一个随机访问文件流从File参数指定的文件中读取,并可选地写入文件。