IO流
2023-04-23 19:44:34 18 举报
AI智能生成
简单介绍了IO流的基本用法及基本知识点
作者其他创作
大纲/内容
一、文件类
File常用方法
创建文件:file.createNewFile()
创建文件夹:
如果当父目录不存在会创建失败:file.mkdir()
如果当父目录不存在会一同创建出来:file.mkdirs()
判断文件是否存在:file.exists()
删除文件:file.delete()
删除文件夹(只能删除空文件夹):file.delete()
...
文件搜索:
file.list(),然后遍历
file.list(new FilenameFilter()){ },然后遍历
file,listFiles().
二、IO流
1、概念
内存与存储设备之间传输数据的通道
水借助管道传输,数据借助流传输
2、流的分类
1、按方向
输入流:将<存储设备>中的内容读入到<内存>中
输出流:将<内存>中的内容写入到<存储设备>中
2、按单位
字节流:以字节为单位,可以读写所有数据
字符流:以字符为单位,只能读写文本数据
3、按功能
节点流:具有实际传输数据的读写功能
过滤流:在节点流的基础之上增强功能
三、字节流【重点】
3.1字节抽象类
InputStream:字节输入流
public int read(){}。
public int read(byte[] b){}。
public int read(byte[] b,int off,int len){}。
Output Stream:字节输出流
public void write(int n){}。
public void write(byte[] b){}。
public void write(byte[] b,int off,int len){}。
3.2文件字节流【重点】
文件字节输出流:FileOutputStream:
fos.write(int b):一次写入一个字节,整数表示这个字节对应的ASCLL码值
fos.write(byte b):一次写入一个字节数组的内容
fos.write(byte[] b,int off,int len):
参数off:从数组的指定位置开始
参数len:执行写出的字节个数
一次写入一个字节数组的内容
文件字节输入流:FileInputStream:
fis.read():一次读入一个字节,返回这个字节所对应的ASCLL值,如果读到流的末尾返回-1
fis.read(byte[] b):
从流中一次读取自定义缓冲区大小的字节,并返回读取到的字节长度,如果读到流的末尾返回-1
fis.read(byte[] b,int offset,int len):
参数offset:读取到数组指定起始位置
参数len:指定读取的字节个数
从流中一次读取自定义缓冲区大小的字节,并返回读取到的字节长度,如果读到流的末尾返回-1
3.3IO流细节
1、在使用文件输出流的时候如果文件不存在会自动创建,但是要保证其父目录存在
2、在使用文件输出流的时候,如果想要向文件中追加内容,那么需要将构造参数append设置为true
3、在使用IO读写的时候,读写的操作应当写在try代码块中,关闭资源的代码写在finally代码块中
4、将IO流的创建写在try()中,这样IO流在使用完成之后无需关闭
3.4字节缓冲流[重点]
缓冲流:BufferedOutputStream/BufferedInputStream
提高IO效率,减少访问磁盘的次数
数据存储在缓冲区中,flush是将缓存区的内容写入文件中,也可以直接close
0 条评论
下一页