java的IO和NIO
File
InputStream / OutputStream
FileInputStream / FileOutputStream
BufferedInputStream / BufferedOutputStream
ObjectInputStream / ObjectOutputStream
Reader / Writer
InputStreamReader / OutputStreamWriter
BufferedReader
2 File
文件或文件夹属性方法
exists() 路径是否存在
isFile() 是否是文件
isDirectory() 是否是文件夹
length() 文件的字节量, 对文件夹无效
getName() 文件名
getParent() 父目录
getAbsolutePath() 完整路径
创建、删除文件或文件夹
createNewFile() 创建文件
mkdirs() 创建多层文件夹
delete() 删除文件,或空文件夹
File.createTempFile() 在系统临时目录下创建临时文件
文件夹的文件列表
list()
获得 String[] 数组
包含所有文件或文件夹名称字符串
listFiles()
获得 File[] 数组
包含文件或文件夹路径的封装对象
3.流 Stream
把数据读写,抽象成数据在管道中流动
单向流动
顺序从头到尾流动一次
4 InputStream/OutputStream
字节流的抽象父类
方法
write( int b)
int的四个字节中,只输出末尾的一个字节
write( byte[] buff)
输出数组中全部字节值
write( byte[] buff, start, length)
输出数组中,从start开始的length个字节值
read()
读取1个字节,再补三个0字节,转成int
读取结束,再读取,返回 - 1
read( byte[] buff)
根据数组的长度,读取一批字节值,放入指定的数组,并返回这一批的数量
读取结束,再读取,返回 - 1
5 高级流、操作流
与其他流相接,提供特定的数据处理功能
对高级流的操作,会对相接的流,执行相同操作
高级流不直接接数据源
提供内存缓冲区,来提高单字节的读写效率
BufferedInputStream
单字节读取数据,缓冲流帮助做批量读取
l BufferedOutputStream
单字节输出,先把字节值,缓存在内部数组中,缓存存满,做批量输出
缓存不满,也可以手动刷出 flush ()
6. Reader/Writer
字符流的抽象父类
方法
write( int c)
int四个字节中,末尾两个字节是char类型字符,把末尾两个字节,转换成其他编码再输出
write( char[] buff)
输出全部字符
write( char[] buff, start, length)
输出从start开始的length个
write(String s)
输出字符串的全部字符
read()
读取一个字符的字节值,补两个0字节,转成int
读取结束,再读取,返回 - 1
read( char[] buff)
批量读取
返回这一批的字符数量
读取结束,再读取,返回 - 1
7 InputStreamReader/OutputStreamWriter
字符编码转换流
InputStreamReader
读取其他编码字节值,转成Unicode
8 BufferedReader/BufferedWriter
字符缓冲流,提高单字符读写效率
BufferedReader
readLine()
读取一行字符串,不含末尾换行符
读取结束,再读取,返回null