虹口专业网站建设,网站备案包括空间内容吗,万站霸屏,下载源码的网站文章目录 基本操作概述1. 文件属性2. 文件构造方法3. 文件方法1. 文件创建2. 文件删除3. 查看目录下所有的文件名4. 遍历目录5. 创建目录5. 目录重命名 基本操作概述
创建文件删除文件创建目录重命名文件判定文件存在…
Java 中#xff0c;提供了一个 File 类#xff0c;进… 文章目录 基本操作概述1. 文件属性2. 文件构造方法3. 文件方法1. 文件创建2. 文件删除3. 查看目录下所有的文件名4. 遍历目录5. 创建目录5. 目录重命名 基本操作概述
创建文件删除文件创建目录重命名文件判定文件存在…
Java 中提供了一个 File 类进行文件系统操作这个对象会使用“路径”进行初始化从而表示一个具体的文件这个文件可以存在也可以不存在 再基于这个对象进行后续操作 1. 文件属性
属性 文件路径的分隔符
修饰符及类型属性说明static StringpathSeparator依赖于系统的路径分隔符String 类型的表⽰static charpathSeparator依赖于系统的路径分隔符char 类型的表⽰ 2. 文件构造方法
构造方法
签名说明File (File parent, String child)根据⽗⽬录 孩⼦⽂件路径创建⼀个新的 File 实例File (String pathname)根据⽂件路径创建⼀个新的 File 实例路径可以是绝对路径或者相对路径File (String parent, String child)根据⽗⽬录 孩⼦⽂件路径创建⼀个新的 File 实例⽗⽬录⽤路径表⽰此处写相对路径的时候就需要明确基准目录是啥代码中写的相对路径的基准目录取决于运行程序的方式
直接在 IDEA 中运行此时的基准路径就是该项目所在的目录再命令行中通过 Java 命令来运行此时基准路径就是 Java 命令所处的目录某个程序可能是被其他进程调用的。进程 1 通过创建字进程的方式运行进程 2进程 2 的基准路径就和进程 1 相同代码执行过程中还可以通过一些 API 修改基准路径改成我们指定的某个路径 3. 文件方法
方法
修饰符及返回值类型方法签名说明解释StringgetParent()返回 File 对象的⽗⽬录⽂件路径获取文件所在的目录 C:\user\1StringgetName()返回 FIle 对象的纯⽂件名称获取文件名test.txtStringgetPath()返回 File 对象的⽂件路径获取当前文件所在的目录当前文件名C:\user\1\text.txtStringgetAbsolutePath()返回 File 对象的绝对路径StringgetCanonicalPath()返回 File 对象的修饰过的绝对路径booleanexists()判断 File 对象描述的⽂件是否真实存在看文件存不存在booleanisDirectory()判断 File 对象代表的⽂件是否是⼀个⽬录判断文件类型booleanisFile()判断 File 对象代表的⽂件是否是⼀个普通⽂件判断文件类型booleancreateNewFile()根据 File 对象⾃动创建⼀个空⽂件。成功创建后返回 true创建新文件booleandelete()根据 File 对象删除该⽂件。成功删除后返回 true立即删除文件voiddeleteOnExit()根据 File 对象标注⽂件将被删除删除动作会到 JVM 运⾏结束时才会进⾏等到程序结束后删除文件String[]list()返回 File 对象代表的⽬录下的所有⽂件名得到目录下所有文件名File[]listFiles()返回 File 对象代表的⽬录下的所有⽂件以 File 对象表⽰得到目录下所有文件对象booleanmkdir()创建 File 对象代表的⽬录创建一级目录booleanmkdirs()创建 File 对象代表的⽬录如果必要会创建中间⽬录创建多级目录booleanrenameTo(File dest)进⾏⽂件改名也可以视为我们平时的剪切、粘贴操作重命名booleancanRead()判断⽤⼾是否对⽂件有可读权限判断读权限booleancanWrite()判断⽤⼾是否对⽂件有可写权限判断写权限 一定要使用双反斜杠表示 \
File file new File(D:\\My Computer\\02 Stricky\\02 Code\\03 IDEA);import java.io.File;
import java.io.IOException; public class Demo1 { public static void main(String[] args) throws IOException { File file new File(D:\\My Computer\\02 Stricky\\02 Code\\03 IDEA\\text.txt); System.out.println(file.getParent()); //文件目录System.out.println(file.getName()); //文件名本体System.out.println(file.getPath()); //文件路径System.out.println(file.getAbsolutePath()); //绝对路径System.out.println(file.getCanonicalFile()); //修饰过的绝对路径}
}//运行结果
D:\My Computer\02 Stricky\02 Code\03 IDEA
text.txt
D:\My Computer\02 Stricky\02 Code\03 IDEA\text.txt
D:\My Computer\02 Stricky\02 Code\03 IDEA\text.txt
D:\My Computer\02 Stricky\02 Code\03 IDEA\text.txt我们可以发现最后三个路径没区别 因为我们针对 file 对象构造的时候是拿绝对路径进行构造的所以此时的 Path 就是一个绝对路径于是三个 getPath 就都是一样的 相对路径的基准不是固定的此时我们通过 IDEA 运行程序基准路径就是 IDEA 打开的这个项目所在的路径
import java.io.File;
import java.io.IOException; public class Demo1 { public static void main(String[] args) throws IOException { File file1 new File(.\\text.txt); System.out.println(file1.getParent()); System.out.println(file1.getName()); System.out.println(file1.getPath()); System.out.println(file1.getAbsolutePath()); System.out.println(file1.getCanonicalFile()); System.out.println(); File file2 new File(..\\text.txt); System.out.println(file1.getParent()); System.out.println(file1.getName()); System.out.println(file1.getPath()); System.out.println(file1.getAbsolutePath()); System.out.println(file1.getCanonicalFile()); }
}//运行结果
.
text.txt
.\text.txt
D:\My Computer\02 Stricky\02 Code\03 IDEA\Gitee\java_code\240812-IO\.\text.txt
D:\My Computer\02 Stricky\02 Code\03 IDEA\Gitee\java_code\240812-IO\text.txt.
text.txt
.\text.txt
D:\My Computer\02 Stricky\02 Code\03 IDEA\Gitee\java_code\240812-IO\.\text.txt
D:\My Computer\02 Stricky\02 Code\03 IDEA\Gitee\java_code\240812-IO\text.txt 修饰过的绝对路径就是把多余的部分去掉了. 就是当前目录.. 是代表忽略掉上一级目录 1. 文件创建
import java.io.File;
import java.io.IOException; public class Demo2 { public static void main(String[] args) throws IOException { File file new File(./text1.txt); boolean ok file.createNewFile(); //创建新文件 System.out.println(ok); //看文件创建是否成功System.out.println(file.exists()); //看文件是否存在 System.out.println(file.isFile()); //看文件是否是个普通文件 System.out.println(file.isDirectory()); //看文件是否是一个目录 }
}//运行结果
true
true
true
falseIOException 创建文件很可能会抛出异常 硬盘空间不够了 在工作中非常普遍尤其是服务器存储很多数据会记录很多日志每天都会生成很多新的内容一般都需要定时清理硬盘搭建报警 没有权限 确保你有操作的权限才能进行对于文件的操作典型的就是两个读/写 2. 文件删除
import java.io.File; public class Demo3 { public static void main(String[] args) { File file new File(./text1.txt); boolean ok file.delete(); System.out.println(ok); }
}
//运行结果
true文件消失了还有一种是等待进程结束之后再进行删除的操作deletOnExit()存在的意义就是可以去构造一些“临时文件” 比如使用 word 创建一个文档打开“显示隐藏文件”在你 word 文档的同级目录下就有一个隐藏文件名字带有一些奇怪符号一旦你把现在编辑的文档关闭了这个隐藏文件就消失了这个隐藏文件中保存了你当前正在修改的还未真正保存的内容若程序异常关闭临时文件就不会消失就可以通过这个文件还原出你正在编辑的内容 3. 查看目录下所有的文件名
import java.io.File;
import java.util.Arrays; public class Demo4 { public static void main(String[] args) { File file new File(.); System.out.println(Arrays.toString(file.list())); }
}
//运行结果
[.gitignore, .idea, 240812-IO.iml, out, src]如果直接使用 list/listFiles只能看到当前目录中的内容如果想看到某个目录下所有的目录和文件就需要递归来完成
4. 遍历目录
若要完成递归操作就需要一个函数来辅助完成 首先判断是不是目录用数组列出当前目录中所包含的内容
import java.io.File; public class Demo5 { private static void scan(File currentDir) { //1.先判定是否是目录 if(!currentDir.isDirectory()){ return; } //2.列出当前目录中包含的内容 File[] files currentDir.listFiles(); if(files null || files.length 0){ //不存在的路径 || 空目录 return; } //3.打印当前目录 System.out.println(currentDir.getAbsolutePath()); //4.遍历这里所有的内容一次进行判断 for(File file : files) { if(file.isFile()) { //如果是普通文件直接打印文件路径 System.out.println(file.getAbsolutePath()); }else { //如果是空目录就继续进行递归 scan(file); } } } public static void main(String[] args) { File file new File(./); scan(file); }
}5. 创建目录
mkdir()
import java.io.File; public class Demo6 { public static void main(String[] args) { File f new File(./abc); boolean ok f.mkdir(); System.out.println(ok); }
}
//运行结果
truemkdirs()可以处理多级目录
import java.io.File; public class Demo6 { public static void main(String[] args) { File f new File(./abc/def/hhh); boolean ok f.mkdirs(); System.out.println(ok); }
}5. 目录重命名
import java.io.File; public class Demo7 { public static void main(String[] args) { File srcFile new File(./abc); File desrFile new File(./abc123); boolean ok srcFile.renameTo(desrFile); System.out.println(ok); }
}通过重命名操作实现移动文件的效果
import java.io.File; public class Demo7 { public static void main(String[] args) { File srcFile new File(./abc123/def); File desrFile new File(./def); boolean ok srcFile.renameTo(desrFile); System.out.println(ok); }}移动 文件就是修改文件所在的路径文件路径的修改也可以视为一种