Java输入与输出(I/O)---- File类(一)

本文详细介绍了Java中的File类,包括其构造方法和常用方法,如exists(), isDirectory(), isFile(), delete(), mkdir(), renameTo(), length(), listFiles()等。并提供了实际操作示例,如创建、删除文件和目录,列出目录内容,以及按时间排序和重命名文件等应用场景。" 111953481,10293704,UEditor上传功能配置指南,"['ueditor', 'ASP.NET', '上传配置']
摘要由CSDN通过智能技术生成

File类(java.io.File)

      File类:是文件和目录路径名的抽象表示。

      1、File类的构造方法:

          (1)、public File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。 如果给定                          的字符串是空字符串,则结果是空的抽象路径名。其中pathname是路径名字符串

         (2)、public File(String parent, String child):从父路径名字符串和子路径名字符串创建新的File实例。其中parent是父                         路 径名字符串,child是子路径名字符串

          (3)、public File(File parent, String child):从父抽象路径名和子路径名字符串创建新的File实例。其中parent是父路径                        名字符串,child是子路径名字符串

           (4)、public File(URI uri):通过将给定的file: URI转换为抽象路径名来创建新的File实例。

        2、File类常用的方法:

             public  boolean exists():测试当前对象所指的文件或目录是否存在,若存在,则返回true,否则返回false;

             public boolean isDirectory():测试当前对象是否为目录,若当前对象是目录,则返回true,否则返回false;

             public boolean isFile():测试当前对象是否为文件,若当前对象是文件,则返回true,否则返回false;

             public boolean delete():删除当前对象所指的文件(目录只能删空目录),若删除成功,则返回true,否则返回false;

             public boolean mkdir():在当前对象指定的路径上创建一个目录;

             public boolean mkdirs():在当前对象指定的路径上创建目录及子目录,不包括子文件;

             public boolean renameTo(File dest):重命名由此抽象路径名表示的文件,将文件名改为dest;

             public long length():返回由此抽象路径名表示的文件的长度;

             public File[] listFiles():返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件及目录,不包括子文件;

             public String[] list():返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录;

             public boolean createNewFile():当且仅当文件不存在时,创建一个由该抽象路径名命名的新的空文件;

             public String getName():返回由此抽象路径名表示的文件或目录的名称;

             public long lastModified():返回文件最后修改的日期,以long型来表示;

             public boolean canread():测试这个文件是否为可读; 

             public boolean canwrite():测试这个文件是否可写;

             public boolean setReadOnly():将当前文件设为只读;

             public String getPath():将此抽象路径名转换为路径名字符串,如果File生成对象时采用的是绝对路径,那么它返回绝                                                        对路径,如果是相对路径,那么它返回相对路径;

             public String getParent():返回此抽象路径名的父路径名;

             public String getAbsolutePath():返回此抽象路径名的绝对路径名;

      •  

     3、举例

        (1)如果E:\work\IO目录下a.txt文件不存在,创建新文件,如果文件存在,则删除此文件             

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

public class FileTest {

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

                //建立程序和磁盘上文件的联系
		File file = new File("E:\\work\\IO\\a.txt");
		
		//如果文件不存在,创建新文件,如果文件存在,则删除此文件
		if(!file.exists()) {
			System.out.println("文件不存在,创建新文件");
			file.createNewFile();
		}else {
			System.out.println("文件存在,删除此文件");
			file.delete();
		}
	}
}

    (2)创建E:\work\IO目录下a与b目录,a目录下再建子目录aa,b目录再建子目录bb

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

public class FileTest {

	public static void main(String[] args) throws IOException {
		
		//建立程序和磁盘上文件的联系
		File file1 = new File("E:\\work\\IO\\a\\aa");
		File file2 = new File("E:\\work\\IO\\b");
		if(!file1.exists() && !file2.exists()) {
			file1.mkdirs();
			file2.mkdirs();
		}else {
			System.out.println("不建子目录和子文件");
		}
    }
}

        (3)、获取指定目录下(E:\codete)所有的文件及文件夹名称

import java.io.File;

public class FileTestName {
	
	public static void main(String[] args) {
		File file = new File("E:/codete");
		
		//返回codete目录下所有的文件及文件夹
		File[] files = file.listFiles();
		for (File f: files) {
			System.out.println(f.getName());			
		}
	}
}

       (4)将E:\codete目录下所有的图片文件按照最后修改的时间排序,并修改图片文件名,以1,2,3...顺序重新命名图片文件名

import java.io.File;
import java.util.Arrays;

public class FileTestDelete {
    public static int n = 1;
	public static void main(String[] args) {
		File file = new File("E:\\codete");
		
		if(file.isDirectory()) {
			File[] files = file.listFiles();
			
			//数组排序,按图片最后修改的时间排序
			Arrays.sort(files, (f1,f2)-> Long.compare(f1.lastModified(), f2.lastModified()));
			
			for (File f : files) {
				
	            //找到图片文件,toLowerCase()转成小写字母
				if(f.getName().endsWith(".JPG")) {
					
					//图片改名
					f.renameTo(new File(f.getParent(),(n++)+".jpg"));
				}
								
			}
		}

	}

}

          (4)获取E:\codete目录下所有的子文件及子文件目录名称,并且按照对应目录层级进行缩进显示

import java.io.File;
import java.util.Arrays;

public class GetFileName {
		
	public  static void  printDir(File file,int hireachy) {
		if(file.isFile()) {
			 printIndent(hireachy);
			 System.out.println("|-->" + file.getName());
		}
		else if(file.isDirectory()) {
			printIndent(hireachy);			
			System.out.println("|-->" + file.getName());
		
			//获取文件夹中所有的文件
			File[] files = file.listFiles();
			
			//遍历所有的文件
			for (File f : files) {
				printDir(f,hireachy+1); //递归调用
	         }
		}
		else {
			System.out.println("既不是文件,也不是文件夹目录");				 
		}
		}
	
	public static void printIndent(int hireachy) {
		for(int i=0; i<hireachy; i++) {
			System.out.print("    ");		
		}
	}
	
	public static void main(String[] args) {
		   File dir = new File("E:\\codete");
		   printDir(dir,0);		   			
		}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值