File and 字节流
File and 字节流
ruoxijunFile and 字节流
File:
- 初始化一个
File
对象:- 以路径最后所指文为准,最后时文件夹则为文件夹对象反之文件同理。
File.separator
:返回系统文件目录分隔符
1 | //接受一个目录路径字符串,实例化为文件或文件夹对象 |
File
常用方法:
1 | File file=new File("e:/test/test.txt"); |
File
对文件的操作:
1 | /** |
File
对文件夹(目录)的操作:
1 | file.mkdir();//一次只能创建一级目录,当路径中多级目录不存在时将创建失败 |
File
的 list,listFiles 方法添加过滤器:
1 | /**过滤器: |
字节流输出流:
须知基础:
字符串转字节数组(
byte[]
):str.getBytes()
:将字符串按系统默认编码,编码为字节数组str.getBytes("utf-8")
:将字符串按指定编码,编码为字节数组
字节数组(
byte[]
)转字符串:new String(bytes)
:将字节数组按系统默认编码,解码为字符串对象new String(bytes,"utf-8")
:将字节数组按指定编码,解码为字符串对象
字节流可操作所有文件,对文本文件编解码有一定困难。对文本文件建议使用字符流。
OutputStream :
字节输出流的顶层抽象父类,它定义了字节输出流的基本方法:
write
:写方法,它有 3 种重载方法:- 传入一个字节数组
write(byte[] b)
将此字节数组输出 write(byte[] b,int off,int len)
输出一个字节数组,并指定它的某一段write(int b)
输出一个字节
- 传入一个字节数组
flush()
:刷新此输出流close()
:关闭此输出流
FileOutputStream :
字节文件输出流继承自OutputStream
,有 3 种常用的构造方法:
FileOutputStream(String path)
:传入文件路径的字符串FileOutputStream(File file, boolean append)
:参 1 为文件对象,参 2 表示是否续写此文件FileOutputStream(String path, boolean append)
当不选择续写时,文件不存在时会自动创建,文件已存在时将在文件后续写。
向 e:/test/test.txt
文件中写入 “test” :
1 | File file = new File("e:/test/test.txt"); |
IO 流的操作都存在许多异常,上写法存在许多隐患。推荐下方式更标准的一种写法:
1 | File file=new File("e:/test/test.txt"); |
因为流是会消耗系统资源的,所有无论数据写入的成功与否该流都应关闭。因此流的关闭方法写在了 finally
语句块中,此语句块中的语句无论上方 try
块中是否产生异常都必须执行。
BufferedOutputStream :
字节缓冲输出流继承自FilterOutputStream
,缓冲流适用于输出资源较多时。
写入的数据将暂存在缓冲区只有调用刷新或关闭方法时才能将缓冲区的数据写入文件中。
关闭方法中在关闭前有调用刷新方法,建议每写一次 write
就刷新调一次 flush
。
1 | File file=new File("e:test/test.txt"); |
字节流输入流:
InputStream :
读入流的顶层父类,它定义了读入流的基本方法。
read
:读方法,它有 3 种重载方法:read(byte[] b)
读取字节数组长度个或小于此长度个字节,字节数组大小建议为 1024 的倍数read(byte[] b,int off,int len)
读取字节存入字节数组中,并取出其中指定的一段read()
读取一个字节,读取到末尾时返回-1
available()
可读取的剩余字节数的估计
close()
关闭此读入流
FileInputStream :
FileInputStream 有两个常用构造方法,传入一个 File
对象,或传入文件的路径。
简单使用:
1 | File file=new File("e:/test/test.txt"); |
Comment
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果