什么是文件(file)?
操作系统组织数据的一种方式
80%指的是硬盘上的文件,但也有来自网络,屏幕上的都可能被组织成文件。
Java中用类来描述文件:File类
通常一个文件有三个权限:
1.是否可读
2.是否可写
3.是否可执行
绝对路径和相对路径的比较:
绝对路径(absolute path)是从根路径开始的一个文件路径
例:Windows C:\java\hello
Linux /root/hello
相对路径(relative path)是相对当前的一个路径——程序运行时的路径:相对于进程的工作路径(work directory)
注意:两个“.”表示上一级路径
一个“.”表示当前路径
不是绝对路径,就是相对路径
Java中一般无法修改工作路径,如果通过其他语言可以修改
File的两种构造方法:
File file=new File("D\\Java\\IO\\测试目录");
File file=new File("D\\Java\\IO","测试目录");
File对象的一些API:
file.exists() //文件是否存在
file.isDirectory() //是否是文件夹
file.canRand() //是否可读
file.canWrite() //是否可写
file.canExecute() //是否可执行
file.getFreeSpace() //获取该盘符的空闲空间
file.getUsableSpace() //获取该盘符的可用空间
file.getTotalSpace() //获取该盘符的总空间
file.getAbsolutePath()//获取绝对路径
file.getParent() //获取上一级路径
file.createNewFile() //生成文件
file.delete() //删除文件
file.deleteOnExit() //在JVM退出时删除文件
file.mkdir() //生成文件夹
file.mkdirs()//生成文件夹,如果有多层中间路径,可生成中间路径
File[] files=file.listFiles()//返回该文件下的所有文件
file.isHidden() //是否是隐藏文件
file.length()
File file=new File("D:\\Java\\新建文件夹");
File dest=new File("D:\\Java\\新的文件");
file.renameTo(dest); //移动文件夹(剪切)
String path="我是相对路径.txt";
File file=new File(path);
file.createNewFile(); //相对路径生成文件
System.getProperty("user.dir");//程序运行的默认配置里的程序启动时的默认路径
File类的API:
File[] files=File.listRoots() //列出所有的根节点
File.createTempFile("iodemo","txt");//生成的文件名不重复,iodemo为文件名前缀,txt为文件名后缀
练习:选定一个根路径,列出该路径下的所有文件的绝对路径
public class ListDir{
public static void listDir(File dir){
File[] files=dir.listFiles();
for(File file:files){
if(file.isDirectory()){
listDir(file);
}else{
System.out.println(file.getAbsolutePath());
}
}
}
public static void main(String[] args){
listDir(new File("D:");
}
}