Java中文件操作

2022-08-26 09:27:54

IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件,通过查API发现File是java.io包下的

目录

一创建功能:

二、删除功能:

三、重命名功能:

四、判断功能:

五、普通获取功能:

六、高级获取功能:

七、文件的写出和读入:

一创建功能:

mkdir()在指定位置创建一个单级目录

mkdirs()在指定位置创建一个多级目录

createNewFile()在指定位置创建一个不存在的空文件

代码演示:

package com.hezhiying;

import java.io.File;
import java.io.IOException;

public class Main {

	public static void main(String[] args) throws IOException {
		File file1 = new File("E:\\aaa");
		System.out.println(file1.mkdir());
		
		File file2 = new File("E:\\bbb\\ccc\\ddd");
		System.out.println(file2.mkdirs());
		
		File file3 = new File("E:\\aaa\\b.txt");
		System.out.println(file3.createNewFile());
	}
}

运行结果:

二、删除功能:

delete()删除指定位置的一个单机目录或文件夹,如果文件夹中有内容就无法删除

代码演示:

package com.hezhiying;

import java.io.File;
import java.io.IOException;

public class Main {

	public static void main(String[] args) throws IOException {
		File file1 = new File("E:\\aaa\\bbb\\ccc");
		System.out.println(file1.mkdirs());
		
		File file2 = new File("E:\\aaa");
		System.out.println(file2.delete());
		
		File file3 = new File("E:\\aaa\\bbb\\ccc");
		System.out.println(file3.delete());
	}
}

运行结果:

三、重命名功能:

renameTo(File dest)

如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名

如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切,而且还能操作文件夹。

 代码演示:

package com.hezhiying;

import java.io.File;
import java.io.IOException;

public class Main {

	public static void main(String[] args) throws IOException {
		File file1 = new File("E:\\aaa\\bbb");
		System.out.println(file1.mkdirs());
		
		File file2 = new File("E:\\aaa\\bbb\\c.txt");
		System.out.println(file2.createNewFile());
		
		File file3 = new File("E:\\aaa\\bbb\\d.txt");
		System.out.println(file2.renameTo(file3));
		
		File file4 = new File("E:\\aaa\\ccc");
		System.out.println(file3.renameTo(file4));
	}
}

通过这个程序可以看出,rename()方法既可以重命名文件,也能重命名文件夹

如果目标文件与源文件不是在同一个路径下呢

package com.hezhiying;

import java.io.File;
import java.io.IOException;

public class Main {

	public static void main(String[] args) throws IOException {
		File file1 = new File("E:\\aaa\\bbb");
		System.out.println(file1.mkdirs());
		
		File file2 = new File("E:\\aaa\\bbb\\c.txt");
		System.out.println(file2.createNewFile());
		
		File file3 = new File("E:\\ccc");
		System.out.println(file3.mkdir());
		
		File file4 = new File("E:\\ccc\\x.txt");
		
		System.out.println(file2.renameTo(file4));
		
	}
}

运行结果:

如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切,而且不能操作文件夹。

四、判断功能:

exists()判断文件或文件夹是否存在

isFile()判断是否是一个文件

isDirectory()判断是否是一个目录

isHidden()判断是否是一个隐藏的文件或是否是隐藏的目录

canRead()判断是否可读

canWrite判断是否可写

五、普通获取功能:

getName()获取文件或文件夹的名称

getAbsolutePath()获取文件的绝对路径

getPath()获取文件夹的相对路径

length()获取文件的大小即字节数

lastModified()获取最后一次被修改的时间。

六、高级获取功能:

pulbic String[] list()获取指定目录下的所有文件或者文件夹的名称数组

public File[] listFiles()获取指定目录下的所有文件或者文件夹的File数组

七、文件的写出和读入:

package com.hzy;

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {

        File file = new File("E:\\a.txt");
        if (!file.exists()) {// 判断该文件是否存在
            file.createNewFile();// 创建文件
        }
        // FileWriter fileWriter = new FileWriter("E:\\a.txt");// 直接写入到文件中,会覆盖原来的文件
        FileWriter fileWriter = new FileWriter("E:\\a.txt",true);// 如果是true,就是往后追加
        fileWriter.write("文件写入111");
        fileWriter.flush();// 刷新缓冲区的内容到文件中
        fileWriter.close();

        FileReader fileReader = new FileReader(file);
        char[] b = new char[1024];
        int len = 0;
        while ((len = fileReader.read(b)) != -1) {
            System.out.println(new String(b,0,len));
        }

    }
}
  • 作者:贺贺学编程
  • 原文链接:https://hezhiying.blog.csdn.net/article/details/95887719
    更新时间:2022-08-26 09:27:54