Java的IO流基础知识

本文仅作为自学时的笔记参考

目录

File类

 目录

1、创建目录

2、列出目录

文件创建与删除 

文件字节输入流

文件字节输出流 

文件字符输入和输出流 


File类

想要读取文件中的信息?那我们就得有个“文件”对象来处理!

File类的对象主要是用来获取文件本身的一些信息,例如文件所在的目录、长度、读写权限等等,与文件的读写操作无关。

那怎么创建一个File类的对象呢?

这里有三个构造方法:

File(String filename)

File(String directoryPath , String filename)

File(Filedir , String filename)

也可以查阅api帮助文档,如下图:

 其实就是可以通过文件名或者根目录与文件名来创建File实例。【URI这种创建方式不常见。】

这里是更详细的构造方法:

 

通过创建实例,便可以获取文档信息了。

可以通过下列方法获取信息,大多都是见名知意,所以这里不再多解释。

 

 其中比较常用的是下图这些:

 目录

1、创建目录

File对象调用public boolean mkdir()来创建目录,成功会返回true,失败则会返回false【比如该目录已存在】

2、列出目录

public String [ ] list():用字符串形式返回目录下的全部文件

public File [ ] listFiles():用File对象形式返回目录下的全部文件

public String [ ] list(FilenameFilter obj):用字符串形式返回目录下的指定类型的所有文件

public File [ ] listFiles(FilenameFilter obj):用File对象形式返回目录下的指定类型的所有文件

这里的FilenameFilter是一个接口,该接口下有一个方法:

文件创建与删除 

如下图这样创建文件,便可以调用createNewFile()方法,建立一个文件!

【这边要写个异常处理】

然后就可以创建出文件啦!

删除文件也很简单:

这样文件就消失啦! 

文件字节输入流

使用输入流包括四个步骤,即设定输入流的源、创建指向源的输入流,让输入流读取源中的数据、关闭输入流。

用人话讲就是,创建一个对象,来处理输入的通道。

那之后我们一样也会讲一个输出流,对应输出的通道。

如果对于文件的读取需求比较简单,我们可以使用FileInputStream类,该类是InputStream的子类,以字节为单位读取文件。

有下面两种构造方法:

FileInputStream流打开一个到达文件的通道。

注意,有可能输入流指向的文件不存在,我们也需要进行异常处理。

【IOException】

看,这样我们就开辟了一个输入流指向我们刚刚创建好的文件。

那我们开辟了这个输入流之后,就可以调用里面的方法,来读入文件里的数据了!

文件字节输入流会顺序地读取文件,只要不关闭流,每次调用read()方法都顺序地读取源中其余的内容,直到源的末尾或流被关闭。

文件字节输出流 

输出流和输入流有异曲同工之妙,其实就是开辟一个输出流,来指向输出的文件。

下面是构造方法:

以及可以调用的write方法:

这样就可以把想要输出的内容,写到自己指定的文件中了。

文件字符输入和输出流 

除了文件字节流以外,还有字符流。

以字节为单位处理数据的话,不能很好地操作Unicode字符,例如一个中文在文件中占用两个字符,很有可能就会出现乱码的现象。

FileReader和FileWriter分别是Reader和Writer的子类,其构造方法如下:

文件字符输入输出流的read()和write()方法使用字符数组读写数据,即以字符为基本单位处理数据。


以上就是自己的一些学习记录,如果有误,可以在评论区指出~

学习总结:听完课后,对于这些流所面向的需求有了更深的理解!并且明白了怎么读到文件结束,并且文件读入的时候,要用n接收读入了几个字节,即while(n = reader.read(c)!=-1),然后这样可以确定每次读入的字节长度。明白了缓冲流是很强大的流,可以大大加快速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值