JAVA File类(文件的遍历,创建,删除)

File类构造函数

	File f1=new File("H://asc//");//传入文件/目录的路径
		File f2=new File(f1,"test.txt");//第一个参数为一个目录文件,第二个参数为要在当前f1目录下要创建的文件

file.list();  获得file文件夹下所有文件/目录的字符串数组

	String []liStrings=f1.list();
		for (int i = 0; i < liStrings.length; i++) {
			System.out.println(liStrings[i]);
		}

	 

利用list()函数遍历文件夹,递归显示文件夹下的文件/文件夹

public static void dfs(String filename) { // java 中区分大小写 String类首字母大写

		File f = new File(filename);
		String namelist[] = f.list();
		for (int i = 0; i < namelist.length; i++) {
			File fchild = new File(filename + "/" + namelist[i]);
			for (int j = 0; j < deep; j++)
				System.out.print("   ");
			if (!fchild.isDirectory())
				System.out.println(namelist[i]);// 文件 打印
			else {// 目录
				System.out.println(namelist[i] + "/");// 先打印 再递归调用本身
				dfs(filename + "/" + namelist[i]);
			}
		}
	}

  

file.isFile()判断当前file文件是否是文件    file.isDirectory()是否为目录     file.exist(); 此文件或者目录是否存在

		File f1=new File("H://asc//");//
		File f2=new File(f1,"test.txt");//
		File f3=new File("H://notexistdir");
//
		System.out.println(f1.isFile());
		System.out.println(f2.isFile());
		System.out.println(f3.isFile());

		System.out.println(f1.isDirectory());
		System.out.println(f2.isDirectory());

		System.out.println(f3.exists()); //运行结果:
false
true
false
true
false
false

  

  

文件/目录的创建,删除

函数file.createNewFile()  创建此File对象文件 如果file之间已经存在,createNewFile 返回fasle 创建文件失败

函数 file.mkdir() 创建文件目录  ,此函数有个缺点 就是只能在已存在的路径下创建文件夹 如果你的File对象路径在电脑中不存在 则会创建失败。而使用 file.mkdirs() 即使文件路径不存在 函数会自动创建相应的文件夹目录 保证file对象的创建成功,

建议使用mkdirs()来创建文件夹

	public void creatnewfile(String path) {// 创建新文件\目录
		File file = new File(path);
		if (file.exists()) { //判断此路径下的文件存在否
			System.out.println("此文件已经存在!");
			return;
		}
		System.out.println("创建此路径下的文件/目录?");
		System.out.println("输入1创建文件目录                 输入2 创建文件 ");

		Scanner scanner = new Scanner(System.in);
		int j = scanner.nextInt();
		if (j == 2) {
			try {
				file.createNewFile();//创建文件
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} else {
			file.mkdirs();//创建目录
		}
	}

  file.delete()可实现文件/文件夹的删除 ,delete()函数虽然可以删除文件 ,但是在文件夹的删除上,只能实现对空目录的删除,如果你要删除的文件夹下面有文件/文件夹 则会删除失败

如果要实现对此类文件夹的删除 可以使用dfs遍历文件目录 +delete()实现

    public boolean deleteFile(String path) {// 删除文件|目录(连联删除)
        File file = new File(path);
        if (!file.exists()) {
            System.out.println("文件不存在!");
            return false;
        }
        dfsdelete(path);
        return true;
    }

    public void dfsdelete(String path) {
        File file=new File(path);
        if(file.isFile()) {//如果此file对象是文件的话,直接删除
            file.delete();
            return;
        }
        //当 file是文件夹的话,先得到文件夹下对应文件的string数组 ,递归调用本身,实现深度优先删除
            String [] list=file.list();
            for (int i = 0; i < list.length; i++) {
                dfsdelete(path+File.separator+list[i]);

            }//当把文件夹内所有文件删完后,此文件夹已然是一个空文件夹,可以使用delete()直接删除
            file.delete();
        return;
    }
    

原文地址:https://www.cnblogs.com/yellowbananame/p/8946613.html

时间: 2024-10-03 16:33:14

JAVA File类(文件的遍历,创建,删除)的相关文章

Java File 类 文件的常用操作(递归遍历所有文件,统计文件大小,删除文件)

1 package com.beiwo.homework; 2 3 import java.io.File; 4 5 /* 6 4.将一个文件夹中所有的文件查找出来,按照一定的格式 7 分析 : 1.一个文件夹中存在文件,子文件夹 8 2.除了当前文件夹,还有子文件夹中的文件也需要找出来. 9 3.子文件查找文件和当前文件查找文件是一样的操作,就可以定义一个方法来做文件查找 10 11 3.删除一周前的数据 12 13 2.获取文件夹中所有文件的大小 14 15 1.判断是否有隐藏文件 16 1

java学习一目了然&mdash;&mdash;File类文件处理

java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) File(File parent,String child) 创建文件: boolean createNewFile(); 创建文件夹: boolean mkdir(); 用于创建一层未定义文件夹 boolean mkdirs(); 用于创建多层未定义文件夹,相当于多个mkdir() 删除文件/文件夹

java File类

今天我要总结一下java File类.这个是一个很重要的类. 首先是我画的思维导图. 还写了一些自己写的代码. /** * Date : 2017/6/24 * Author : Hsj * Description : */ public class Demo { /** * File(pathname)表示文件或文件夹路径 * File(String parent,child); * File(File parent,child); */ @Test public void fun() { /

Java File类的学习

File类的概述 java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. File类部分构造方法 /** * 从父抽象路径名和子路径名字符串创建新的File实例. */ private File(String child, File parent) { ... } /** * 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例. */ public File(String pathname) { ... } 路径分隔符和默认名称分隔符 /

JAVA File类 分析(三)

前面两篇与大家一起研究了unix下的文件系统,本篇将和大家一起分析 文件的属性和文件夹. ok,废话不说,先来段代码 #include <stdio.h> #include <sys/types.h> #include <dirent.h> void do_ls(char[]); void main(int ac,char *av[]){ if(ac==1) do_ls("."); else{ while(--ac){ printf("%s

Java File类总结和FileUtils类

Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. File类的对象可以是目录或者文件. 如果是目录,public boolean isDirectory()返回true: 如果是文件(非目录则是文件),public boolean isFile()返回true: 但是注意需要先判断文件是否存在,如果文件不存在,上面两个方法都返回false,即不存在的F

java RandomAccessFile类文件基本操作

RandomAccessFile类是java中仿C的文件操作方法,下面通过实例演示RandomAccessFile类对文件的基本操作,深入了解请查看Java API文档.(注:RandomAccessFile类大多不被采用) 上代码 import java.io.*; public class AccessFileDemo { public static void main(String[] args) { Student stu1=new Student("Zhang San",10

Java——File(文件)

 public static void main(String[] args) { // getFile(); /* * 需求:  对指定目录进行所有内容的列出,(包含子目录中的内容) * */ File dir = new File("E:\\HB_JAVA解压"); listAll(dir, 0); } public static void listAll(File dir, int len) { System.out.println(getSpace(len) + dir.g

java File类的基本操作

(如果有谁想要这个软件的话,在评论中留一个邮箱吧.) 前几天好几次看到有朋友晒出玩2048刷高分的截图,我就想我能不能也做一个2048呢?仔细想了想2048游戏的规律,发现其实逻辑上很简单,也不用研究什么算法,于是我马上觉得我可以很快写出来.当天下午我就用了四个小时完成了2048的基本功能.几天后觉得不满足,于是给我的2048加了存档.读档和后退一步的功能,这样就更好刷分了呢! 使用语言:C#: 平台:Visual Studio 2012 Win Form. 如何完成2048的基本功能呢?204