文件操作总结更新(附文件输入和输出操作的简单说明)

本文介绍了Java中使用File类进行文件操作的基本方法,包括文件的创建、删除、列表显示等,并详细解释了File类的构造器及重要方法。此外,还介绍了如何使用InputStream及其子类进行文件读取操作,以及如何利用缓冲流提高读写效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

===================java文件操作=======================
前言:在java中,使用File类来进行相关的文件操作,可以通过File对象的方法创建文件对象、删除文件、列表目录下的文件以及判断文件是目录还是正式文件。
File类的相关属性:
1)public static String pathSeparator:表示当前操作系统的路径分隔符,因为在不同的操作系统下分隔符是不一样的,所以建议不要直接敲硬编码,要使用该属性代替硬编码。
2)File类的构造器:
一:File(File parent, String child)
表示在父目录(文件)下创建一个名字为child的文件对象;

二:File(String abc)
表示创建一个 以abc为名字的File对象;

三:File(String parent,String chlid)
表示以名字为parent字符串作为父目录名,创建一个指向名为child的文件对象。

注意:当我们通过File的构造器创建一个文件对象时,仅仅是在JVM内存中生成了一个File类型的对象,这时的对象与磁盘并没有任何关系,只有在调用这个对象时(其方法),该对象才会与磁盘上的某个或某些文件发生关系。

3)File的一些重要方法
boolean exists();
String getname();
boolean isDirectory();
long length();
File[] listFiles();
boolean mkdirs();
boolean delete();
相关的用法参考JDK说明,还有许多实用的方法都可以在JDK中找到。

4)利用File的相关属性及方法可以实现打印目录,查找目录的功能,可以使用递归方法判断并打印出目录及目录一下文件的相关信息。

=======================相关文件操作流的用法==========================
在上面我们知道了java中可以用File对象来创建文件对象,也可以查看文件的相关信息,比如说相对路径和绝对路径等;但我们要的是如何对这些创建出来的文件进行我们想要的操作,而不是只是为了创建没用的文件或文件夹。为此我将介绍java中一些简单的可以操作文件的流操作。
所谓流操作,顾名思义就是类似于水流,有水管封装的流状态,在java的io机制中,把流也当成是类来看待,只要我们创建了流对象,就可以对文件进行读写操作了。
在java中,为了对不同来源和性质的流对象调用同一的方法,系统首先定义了顶层输入与输出流的接口和抽象类,以方便使用,建议尽量按照在具体流中所实现的接口(抽象类)中定义的方法使用。

(一)InptStream是一个抽象类,它有多种适用于不同用途的具体实现类,大家可以参考JDK资料,在这里只介绍FileInptStream。
用法:在程序中按照上面所说的操作创建一个测试文件(可以直接在文件夹下创建),然后我们创建一个流对象,流对象的构造函数的参数类表中,参数为文件名,如:
java.io.InputStream in = new java.io.FileInputStream(文件名);
这句话表示创建一个流对象,并把它“绑定”在文件名所指的文件上,我们就可以通过这个流对象来读入该文件中的数据了。读入的方法在编写程序时系统(eclipse)会有自动提示,按照提示使用符合自己要求的方法即可。

(二)在InputStream的子类中还有一个比较常用的DataInputStream类,该类主要用于读入基本数据(八大基本类型的数据),怎么写入,就怎么读出来。所以想要读入,就必须知道是怎么写进去的。注意:DataInputStream是InputStream的一个子类,它的地位不等同于FileInptStream,它的构造函数参数为FileInptStream对象,可以简单理解为它是用来包装FileInptStream对象的。(即在水管上加以限制使之成为专门输送基本数据的水管,并不是重新在文件上安装一根专门输送解基本数据的水管)

(三)缓冲流
当我们要读写的文件太大时,我们会发现单纯使用以上的流对象很浪费时间,不怕,java虚拟机为我们提供了缓冲流来实现提速。可以理解为缓冲流是与DataInputStream地位相等的,它也是包装FileInptStream流对象的。不过它的主要功能是把数据一块一块(而不是一个字节一个字节)读入或读出,大家可以比较两者所用的时间,可以发现不用缓冲流的时候时间是大大增加了。所以在文件较大时,推荐使用缓冲流。

(四)以上所介绍的只是读入流,输出流的用法与之相当接近,只是输出流的操作是在内存上进行的,(输入流也是)我们想要的就是把输出的数据保存,故在输出流操作最后一步还必须使用输出流特有的flush方法来进行保存数据。无论是输入还是输出,使用完文件后必须用close方法关闭文件,防止文件出现意想不到的故障,要养成这个良好的习惯。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值