#IO操作:
1,存储:当我们需要把内存中的数据存储到持久化的设备上,这个动作称为输出Output操作;
2、读取:当我们把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作;
我们把这种输入输出动作称为IO操作。
#File类
java.io.File
* 将操作系统中的,文件,目录(文件夹),路径,封装成File对象
#File中的静态常量
//与系统有关的路径分隔符相当于Windows系统中的;和Linux的:
String separator = File.pathSeparator;
上图是四个静态常量的介绍
//与系统有关的默认名称分隔符
separator = File.separator;
System.out.println(separator);// 向右 \ 目录名称分割 Linux /
- a: 绝对路径
* 绝对路径是一个固定的路径,从盘符开始
* b: 相对路径
* 相对路径相对于某个位置,在eclipse下是指当前项目下
* c: 路径
绝对路径
在系统中具有唯一性
c:\windows\system32
相对路径
表示路径之间的关系
D:\develop\Java\jdk1.7.0_72\bin
D:\develop\Java\jre7
路径之间关系
Java 父目录是D:\develop
Java 子目录是:jdk1.7.0_72
父路径是 唯一性
子目录是可以多个
#File类中的构造方法
/*
* File(File parent,String child)
* 传递路径,传递File类型父路径,字符串子路径
* 好处: 父路径是File类型,父路径可以直接调用File类方法
*/
public static void function_2(){
File parent = new File(“d:”);
File file = new File(parent,“eclipse”);
System.out.println(file);
}
#在盘符中创建文件
File file = new File(“c:\a.txt”);
boolean b = file.createNewFile();
#在盘符中创建文件夹
File file = new File(“c:\abc”);
boolean b = file.mkdirs();
#删除文件或者文件夹
File file = new File(“c:\a.txt”);
boolean b = file.delete();
#返回 该路径下文件或文件夹的名字
#返回文件的字节数
#获取文件的绝对路径
- String getAbsolutePath(): 获取绝对路径,返回String对象
- File getAbsoluteFile() : 获取绝对路径,返回File对象
-
- eclipse环境中,写一个相对路径,绝对位置工程根目录
- eclipse环境中,写一个相对路径,绝对位置工程根目录
#获取父路径
- String getParent(): 获取父路径,返回String对象
- File getParentFile(): 获取父路径,返回File对象
#File判断
File类判断功能
* a: 方法介绍
* boolean exists(): 判断File构造方法中封装路径是否存在
* 存在返回true,不存在返回false
* boolean isDirectory(): 判断File构造方法中封装的路径是不是文件夹
* 如果是文件夹,返回true,不是文件返回false
* boolean isFile(): 判断File构造方法中封装的路径是不是文件
* 如果是文件,返回true,不是文件返回false
#两个简单的以数组形式返回目录中的文件和目录
并且可以遍历
#文件过滤器
FileFilter中只有这一个方法
* listFiles()遍历目录的同时,获取到了文件名全路径,调用过滤器的方法accept,将获取到的路径传递给accept方法的参数pathname
* accept方法接收了参数pathname,参数是listFiles传递来的
* * 在accept方法中,进行判断,如果这个路径是Java文件,返回true,走着返回false
* 一旦方法返回了true
* listFiles将路径保存到File数组中
#递归遍历:
public class FileDemo {
public static void main(String[] args) {
File dir = new File(“d:\eclipse”);
getAllDir(dir);
}
/*
* 定义方法,实现目录的全遍历
*/
public static void getAllDir(File dir){
System.out.println(dir);
//调用方法listFiles()对目录,dir进行遍历
File[] fileArr = dir.listFiles();
for(File f : fileArr){
//判断变量f表示的路径是不是文件夹
if(f.isDirectory()){
//是一个目录,就要去遍历这个目录
//本方法,getAllDir,就是给个目录去遍历
//继续调用getAllDir,传递他目录
getAllDir(f);
}else{
System.out.println(f);
}
}
}
}
目录,可以理解为课本上的目录,包括很多的“章节”