一 File类的成员方法
1:删除功能:public boolean delete(): 删除文件或者文件夹,删除成功,返回true
2:判断功能:
public boolean exists(): 判断file对象是否存在
public boolean ifFile(): 判断file对象是否是文件
public boolean isDirectory(): 判断file对象是否是文件夹(目录)
public boolean isAbsolute(): 判断file对象是否为绝对路径
public boolean canRead(): 判断file对象是否可读
public boolean canWrite(): 判断file对象是否可写
public boolean isHidden(): 判断file对象是否隐藏
3:获取功能:
String getAbsolutePath(): 获取file对象绝对路径
String getPath(): 获取file对象相对路径
String getName(): 文件名称
long length(): 文件大小,单位是字节
long lastModified(): 上次修改时间的毫秒值
public static File[] listRoots(): 列出可用的系统文件根目录
public String[] list(): 返回的是指定目录下所有文件或者文件夹的名称数组
public File[] listFiles(): 返回的是指定目录下所有文件或者文件夹对象数组
二 递归
(1)方法定义中调用方法本身的现象。(2)递归的注意事项:
A:一定要有出口,否则死递归。
B:次数不能过多,否则内存溢出。
构造方法不能递归调用。
三 IO流
(1)IO流的分类:A:字节流
字节输入流 InputStream
字节输出流 OutputStream
B:字符流
字符输入流 Reader
字符输出流 Writer
(2)FileWriter写入数据
步骤:
A:创建字符输出流对象
B:调用写入数据方法,并刷新缓冲区
C:释放资源
代码体现:
FileWriter fw = new FileWriter("a.txt");
fw.write("hello,io");
fw.flush();
fw.close();
问题?
A:创建字符输出流对象做了几件事情?
a:创建字符输出流对象
b:调用对象的写入数据方法,并刷新缓冲区
c:释放资源
B:写数据完毕后,为什么要刷新?
C:为什么要close()?
1:让流对象变成垃圾
2:通知系统去释放和文件相关的资源
D:flush()和close()的区别?
flush():只刷新缓冲区,流对象还可以继续使用。
close():先刷新缓冲区,在关闭流对象。流对象不可以继续被使用。
E:怎么实现数据换行?
给出换行符
windows:\r\n
linu:\n
mac:\r
F:怎么实现数据追加写入?
构造时用带两个参数的
public FileWriter(String fileName,boolean append){}