2020-12-14

1、java流的分类
从流动方向上看:
一般分为输入流和输出流两类。程序可以用输出流向文件写数据,用输入流从文件中读数据。而针对键盘只有输入流,针对屏幕只有输出流。
从读取类型上看:
一般分为字节流和字符流。字节流是从InputStream和OutputStream派生出来的一系列类。
从源头看:
可以分为节点流和过滤流。用于直接操作目标设备对应的流叫节点流。程序可以通过过滤流去操作节点流,以便更加灵活方便的阅读各类型的数据。

2、InputStream和OutputStream
FileInputStream和FileOutStream分别是InputStream和OutputStream的直接子类,这两个子类主要负责完成对本地磁盘文件的顺序输入与输出操作的流。FileInputStream类对象表示一个文件字节输入流,从中可读取一个字节或一批字节。FileOutputStream类对象表示一个文件字节输出流,从向流中写入一个字节或一批字节。

3、字节流与字符流转化
OutputStreamWriter:将字节输出流转换成字符输出流,是 writer 的子类。
InputStreamReader :将字节流转换成字符输入流,是Reader 的子类。
一般操作输入输出内容就需要字节流或字符流,但是有些时候需要将字符流变为字节流的形式,或者将字节流变为字符流的形式,所以就需要另外一组转换流的操作类。转换步骤,如果以文件操作为例,在内存中的字符数据需要通过OutputstreamWriter变为字节流才能保存在文件中,读入的字节流通过InputStreamReader变为字符流。

4、过滤流(filter stream)也称为包装流,是为某种目的过滤字节或字符的数据流。基本输入流提供地读取方法只能用来读取字节或字符,而过滤器流能够读取整数值、双精度值或字符串,但需要一个过滤器类来包装输入流。

5、对象的序列化和反序列化
Java序列化就是指把Java对象转换为字节序列的过程,Java反序列化就是指把字节序列恢复为Java对象的过程。

6、File类
主要用于文件和目录的创建文件、删除文件、重命名文件,判断文件读写权限以及文件是否存在,查询等功能方法。
常用方法:
获取实例对象代表的文件名字(包含文件后缀)
public String getName()

获取实例对象代表的文件上级目录
public String getParent()

获取实例对象代表的文件的实际路径
public String getPath()

检测该实例对象代表的文件的路径是否是绝对路径(windows系统中路径是以驱动盘开始的就是绝对路径)
public boolean isAbsolute()

获取实例对象代表的文件的绝对路径
public String getAbsolutePath()

实例对象代表的文件是否存在
public boolean exists()
检测实例对象代表的是否是文件
public boolean isFile()

检测实例对象代表的是否是目录
public boolean isDirectory()

创建新文件–当且仅当实例对象代表的文件不存在时才可以创建新文件
public boolean createNewFile() throws IOException

删除实例对象代表的文件或目录,当代表目录时,必须目录下为空才可以删除
public boolean delete()

7、Java为文件读写提供的支持
getName():获取文件名称,返回String
canRead():boolean类型,是否可读
exist()/isFile():boolean类型,是否存在
length():long,文件长度,以字节为单位
getAbsolutePath():文件绝对路径,返回String
getParent():文件父路径,返回String
isDirectory():boolean 是否为目录
isHidden():boolean是否隐藏
lastModified():long,最后修改时间
delete():删除文件
createNewFile():通过实例创建文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值