一、java.io.file
File file = new File("C://1.txt"); //创建file对象,用于创建文件
file.exists();//建议先判断文件是否存在
file.createNewFile();//用于判断是否创建成功,若文件已存在则返回false,若不存在则创建该文件并返回true
file.mkdir(); //用于创建单个文件夹
file.mkdirs();//可以创建多个 比如:c://a/b/c
File dir = new File("c://test1");
File a = new File(dir,"test2.txt");//创建子文件
File b = new File("c://test1","test3.txt");//效果等同上一个
a.delete();//删除test2.txt文件
b.length();//获取文件大小,按字节计算
dir.list();//获取该路径下所有的文件和目录
dir.listFiles();//获取该路径下所有的文件
File oldFile = new File("c://a.zip");
File newFile = new File("d://b.zip");
oldFile.renameTo(newFile);//把旧的文件放到新的位置去(重命名)
System.out.println(File.pathSeparator);//获取路径分隔符 打印结果为: ; 用于跨系统编写,进行替换
System.out.println(File.separator);//获取名称分隔符 打印结果为: \
二、文件过滤器
public static void main(String[] args) throws IOException {
File e = new File("d://");
listFiles(e);
}
public static void listFiles(File file){
//创建一个过滤器,过滤avi文件
FileFilter filter = new AVIFileFilter();
//通过文件获取子文件夹
File[] files = file.listFiles(filter);
if(files != null && files.length>0) {
for (File f : files) {
if (f.isDirectory()) {
listFiles(f);
} else {
System.out.println("发现一个avi文件" + f.getAbsolutePath());
}
}
}
}
static class AVIFileFilter implements FileFilter{
@Override
public boolean accept(File pathname) {
if(pathname.getName().endsWith(".avi") || pathname.isDirectory()){
return true;
}
return false;
}
}
三、相对于与绝对路径
绝对路径:从盘符开始,是一个完整的路径 比如:c://a.txt
相对路径:在java中是相对于项目目录路径,这是一个不完整的便捷路径,在java开发中很常用,例如:a.txt
四、IO流
概述:可以将这种数据传输操作,看做一种数据的流动,按照流动的方向分为输入Input和输出Output。
IO流的分类:
按照流的方向来分,可以分为输入流和输出流
按照流动的数据类型来分,可以分为字节流和字符流
字节流:一切皆字节
输入流: 顶级父类InputStream
输出流:顶级父类OutputStream
字符流:
输入流:Reader
输出流:Writer
后续学习的任何流,在传输时底层都是二进制
OutputStream(抽象类)
close() |
关闭此输出流并释放与此流相关联的任何系统资源。 |
flush() |
刷新此输出流并强制任何缓冲的输出字节被写出。 |
write(byte[] b) |
将 b.length字节从指定的字节数组写入此输出流。 |
write(byte[] b, int off, int len) |
从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。 |