文件操作
具体内容
- java语言里面提供了有对于文件操作系统的支持,而这个支持是在java.io.File类里面定义了,在整个java体系里面,File类是唯一一个与文件本身操作有关的类。
- 想要对文件进行操作,必须提供完成的路径而后才可以调用相应的方法进行处理。
- 下面我们来看看File类的基本使用;
File的基本使用
- 我们打开开发文档可以看出,File类是Comparable接口的一个子类。所以,我们可以知道,我们File类的对象是可以直接进行排序的。
import java.io.File;
import java.io.IOException;
public class 文件操作练习 {
public static void main(String[] args) throws IOException {
File file = new File("D:\\文件操作专用\\a.txt");
if(!file.exists()){
file.createNewFile();
}
}
}
- 这就是文件的创建以及判断文件是否在系统里面存在。
- 然后就是因为不同的系统,他们的文件分割符也是不一样的,所以,我们java提供了一个分隔符常量: public static finalString separator;
- 所以,我们在写文件的绝对路径的时候,要是不确定你写的分割符是否正确,就可使用分隔符常量;
File file = new File("D:" + File.separator + "文件操作专用 " + File.separator + "a.txt");
- 这样也是可以的。
- 在我们使用File类进行文件处理的时候要注意:
- 程序 -> JVM -> 操作系统函数 -> 文件处理
- 在文件创建的时候有一个重要的前提:文件的父路径必须首先存在。
- 获取父路径:public File getParentFile();
- 创建文件夹:public boolean mkdirs();
- 有了这两个,我们就可以进行文件的创建了,那么你父亲节点再多也可以进行创建。
public class 文件操作练习 {
public static void main(String[] args) throws IOException {
File file = new File("D:" + File.separator + "文件操作专用" + File.separator + "1" + File.separator + "2" + File.separator + "a.txt");
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
if(!file.exists()){
file.createNewFile();
}
}
}
- 所以来讲,这样才是文件创建的标准形式,要考虑到位,好兄弟们。
- 然后我们来获取一下文件的目录,以一个目录为根节点,然后目录下的子文件名全部输出
public class 文件操作练习 {
public static void main(String[] args) throws IOException {
File file = new File("D:" + File.separator);
if(file.isDirectory()){
File [] ans = file.listFiles();
for(int i=0;i<ans.length;i++){
System.out.println(ans[i]);
}
}
}
}
- 还是挺好用的,说实话。
- 然后我们来看看进阶版本的,直接输出所有的目录以及结构
public class 文件操作练习 {
public static void main(String[] args) throws IOException {
File file = new File("D:" + File.separator);
fun(file);
}
public static void fun(File file){
if(file.isDirectory()){
File [] ans = file.listFiles();
if(ans != null){
for(int i=0;i<ans.length;i++){
fun(ans[i]);
}
}
System.out.println(file);
}
}
}
- 直接美滋滋;
- 然后我们看一个更牛的,批量进行文件名的修改
public class 文件操作练习 {
public static void main(String[] args) throws IOException {
File file = new File("D:" + File.separator + "文件操作专用");
fun(file);
}
public static void fun(File file){
if(file.isDirectory()){
File [] ans = file.listFiles();
if(ans != null){
for(int i=0;i<ans.length;i++){
fun(ans[i]);
}
}
System.out.println(file);
}else{
if(file.isFile()){
String fileName = null;
if(file.getName().contains(".")){
fileName = file.getName().substring(0,file.getName().lastIndexOf(".")) + ".doc";
}else{
fileName = file.getName() + ".doc";
}
File newfile = new File(file.getParent(),fileName);
file.renameTo(newfile);
System.out.println(fileName);
}
}
}
}
- 这件建议自己建立一个小文件玩,要玩记得备份,不然我怕你哭,啊哈哈哈哈哈。