File
概述: 文件和文件夹的对象
构造方法:
File file = new File(File path,String child)
//第一个参数指定的是父路径的File对象,第二个参数是子目录
File file = new File(String path)
File file = new File(String parent,String child)
//第一个参数是父路径,第二个参数是子路径
方法:
获取方法:
getAbsolutePath() //获取绝对路径(父目录是上一文件夹,父路径是绝对路径)
getPath //获取封装路径
getName //获取文件名称
length //获取文件的大小
对文件进行操作:
createNewFile //1.创建新文件 2.如果指定的文件存在,创建失败,返回false
delete //删除文件 不走回收站
对文件夹进行操作:
mkdir //创建单级文件夹 如果指定文件夹存在,创建失败
mkdirs //创建多级文件夹 如果指定文件夹存在,创建失败
delete //删除文件夹 如果文件夹是空,删除成功
判断:
isFile //判断是不是文件
isDirectory //判断是不是文件夹
exits //判断文件或文件夹是否存在
获取指定目录下文件和文件夹
list
//获取文件夹下的文件名,返回一个String数组
listFiles
//获取文件夹下的文件或文件夹对象,返回File数组
递归:
***概述:***为了不断缩小问题本身的规模来得到结果而不断调用自己的方式。
注意:不一定要有return,但是一定要有出口。
字符流 字节流
IO介绍
概述:将数据永久的保存到硬盘中,便于以后利用
流向
出:利用Java程序将数据写到硬盘上
入:利用Java程序将数据从硬盘中读回来
字节:一切皆为字节
字节流:字节输出流
FileOutputStream
构造:FileOutputStream(String path),FileOutputStream(File file),FileOutputStream(指定文件,boolean)(往后追加内容)。
方法:write(int i),write(byte[] byte),write(byte[] byte,从哪里开始写,写多少个)
注意:getBytes(),将字符串变成字节,返回一个字节数组
字节输入流:FileInputStream
构造:FileInputStream(String path),FileInputStream(File file)
方法: read 一个字节(int)
一个字节数组(byte[])
字节数组一部分(byte[],从哪里开始,读多少个)
复制: 创建输出流和输入流对象
边读,边写
字符流: 文件字符输出流
FileWriter
构造: FileWriter(文件路径),FileWriter(文件,boobean)(追加内容)
方法:write(String s) 直接往文件中写内容
write(String s,int ,int) 一次写一个字符串的一部分
参数1:字符串
参数2:从哪里开始–>索引
参数3:写多少个
write(char[] char) 一个字符数组的写
write(char[] char,int ,int) 一次写一个字符数组的一部分
参数1:字符数组
参数2:从哪里开始–>索引
参数3:写多少个
write(int i) 填写整数,回去码表中查所对应的字符
flush() 刷新缓冲区
close() 关闭流对象–>先刷新,再关闭
\r\n 换行
文件字符输入流:
FileReader
构造 FileReader(String path)
方法:read() 一个字符一个字符的读,一个字符数组的读,字符数组的一部分
close,关流
复制 1.创建两个流对象,2.边读边写
Properties
概述: 属性集
特点:存储元素以键值对形式存在
使用 1.创建Properties对象 2.存储元素setProperty 3.遍历 stringPropertyNames(),获取的是key,返回set集合 4.遍历set集合 5.调用getProperty 根据key获取value 将集合中的数据读或者写到文件中
读: load
高效流 转换流 序列化流 打印流
高效流:
高效字符输出流:BufferedWriter
构造: BufferedWriter(new FileWriter(指定文件路径))
方法:writer(),close,newLine()(换行)
高效字符输入流:BufferedReader
构造: BufferedReader(new FileReader(指定文件路径)
方法: read,close,readLine,一次读一行
复制:1.创建两个流对象 2.边读边写
字节缓冲输出流:BufferedOutputStream
构造:BufferedOutputStream(new FileOutputStream(文件路径))
方法:write
字节缓冲输入流:BufferedInputStream
构造:BufferedInputStream(new FileInputStream(文件路径))
方法: read
转换流:OutputStreamWriter
概述:字符流通向字节流的桥梁
构造:OutputStramWriter(new FileOutputStream(文件路径),编码集)
方法:write
InputStreamReader
概述:字节流通向字符流的桥梁
构造:InputStreamReader(new FileInputStream(文件路径),编码集)
方法:read
注意:读和写,编码保持一致
序列化和反序列化
作用: 对对象进行读写
序列化:ObjectOutputStream
构造:ObjectOutputStream(new FileOutputStream)
方法:writeObject(对象)
反序列化:ObjectInputStream
构造:ObjectInputStream(new FileInputStream)
方法:readObject()
瞬态:transient //被它修饰的,不会被序列化
打印流:字节打印流
PrintStream
方法:print //不换行
println //换行
改变流向:System.setOut(PrintStream)