Java中File的入门使用详解

本文详细介绍Java中File类的使用方法,包括构造方法、创建、删除、重命名等功能,并通过实例演示如何进行文件和目录的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#Java中File的入门使用详解#
在这篇文章中,对概念的理解可能比较少,主要介绍怎么用.
*以下内容均从本地eclipse中整理复制过来,是个人学习的笔记总结,所以多为单独的java文件,还请见谅,不过每一篇都添加了注释,通俗易懂.大家可以把代码复制到机子上自己试验.希望对初学者有所帮助.

package cn.lawfree_01;
import java.io.File;
/*
 * 我们想要实现IO操作,就必须知道硬盘上文件的表现形式
 * 而java就提拱了一个File类供我们的hi用
 * 
 * File:文件和目录路径名的抽象形式
 * 构造方法:
 * 		File(String pathname):根据一个路径得到File对象
 * 		File(String parent,String child):根据一个目录和一个子文件、目录得到File对象
 * 		File(File parent,String child):根据一个父File对象和一个子文件、目录得File对象
 * 
 */
public class FileDemo {
	public static void main(String[] args){
		//File(String pathname):根据一个路径得到File对象
		//把e:\\demo\\a.txt封装成一个File对象
		File file=new File("E:\\demo\\a.txt");
		
		//File(String parent,String child):根据一个目录和一个子文件、目录得到File对象
		File file2=new File("E:\\demo","a.txt");
		
		//File(File parent,String child):根据一个父File对象和一个子文件、目录得File对象
		File file3=new File("e:\\demo");
		File file4=new File("file3","a.txt");
		
		//以上三种方式效果一样
	}
}

package cn.lawfree_02;

import java.io.File;
import java.io.IOException;
/*
 * 创建功能
 * public boolean createNewFile():创建文件
 * public boolean mkdir():创建文件夹,如果存在这样的文件夹,就不创建了
 * public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
 * 
 * 注意:到底是要穿建文件还是文件夹
 */
public class FileDemo {
	public static void main(String[] args) throws IOException {
		//需求:我们要在E盘目录下创建一个文件夹demo
		File file=new File("e:\\demo");
		System.out.println("mkdir:"+file.mkdir());
		
		//需求我们要在E盘muludemo下创建一个文件a.txt
		File file2=new File("e:\\demo\\a.txt");
		System.out.println("createNewFile:"+file2.createNewFile());
		
		//蹴球:我要在e盘目录test下创建一个文件b.txt
		//注意:要想在某个目录下创建内容,该目录首先必须存在
		//File file3=new File("e:\\test\\b.txt");错误,会抛异常
		
		//需求:我要在我要在e盘目录test下创建aaa目录
		//File file4=new File("e:\\test\\aaa");
		//System.out.println("mkdir:"+file4.mkdir());
		
//		File file5=new File("e:\\test");
//		File file6=new File("e:\\test\\aaa");
//		System.out.println("mkdir:"+file5.mkdir());
//		System.out.println("mkdir:"+file6.mkdir());
		
		//其实我们有跟简单的方法
		File file7=new File("e:\\aaa\\bbb\\ccc\\ddd");
		System.out.println("mkdir:"+file7.mkdir());
				
		//看下面这个东西:
		File file8=new File("e:\\lawfree\\a.txt");//不会报错,创建的a.txt是一个文件夹
		System.out.println("mkdirs:"+file8.mkdirs());
	}
}
package cn.lawfree_03;

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

/*
 * 删除功能:public boolean delete()
 * 注意:a:若创建文件或文件夹忘了写盘符,那么默认在项目路径下
 * 		b:Java中删除不走回收站
 * 		c:要删除一个文件夹,请注意该文件夹内不能包含文件或文件夹
 */
public class FileDemo {
	public static void main(String[] args) throws IOException {
		//创建文件
//		File file =new File("e:\\a.txt");
//		file.createNewFile();
//		System.out.println("createNewFile():"+file.createNewFile());
		
		//我不小心写成这样了
		File file=new File("a.txt");
		System.out.println("createNewFile():"+file.createNewFile());
		//继续来几个
		File file2=new File("aaa\\bbb\\ccc");
		System.out.println("mkdirs:"+file2.mkdirs());
		
		//删除功能:我要删除a、txt这个文件
		File file3=new File ("a.txt");
		System.out.println("delete:"+file3.delete());
		
		//我要删除ccc这个文件夹
		System.out.println("delete:"+file2.delete());
		
		//我要删除aaa这个文件夹
		File file5=new File ("aaa");//其下有东西 
		System.out.println("delete:"+file5.delete());
	}
}

package cn.lawfree_04;

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

	/*
	 *重命名功能:public boolean renameTo(File dest)
	 * 
	 * 路径以盘符开始:绝对路径
	 * 路径不以盘符开始:相对路径
	 * 如果路径名不同,就改名并剪切
	 */
	public class FileDemo {
			public static void main(String[] args) throws IOException {
				File file=new File ("a.txt");
				System.out.println(file.createNewFile());
				//需求:我要修改这个文件名称为b.txt
				
				File newfile=new File ("b.txt");
				System.out.println(file.renameTo(newfile));
				
				File newfile2=new File ("e:\\c.txt");
				System.out.println(newfile.renameTo(newfile2));	
			}
	}
import java.io.File;

/*
 * 判断功能
 * public boolean isDirectory();判断是否是目录
 * public boolean isFile(); 
 * public boolean exists();
 * public boolean canRead();
 * public boolean canWrite();
 * public boolean isHidden();
 */
public class FileDemo {
	public static void main(String[] args) {
		//创建文件对象
		File file=new File("a.txt");
		System.out.println("isDirectory:"+file.isDirectory());
		System.out.println("isFile:"+file.isFile());
		System.out.println("exists:"+file.exists());
		System.out.println("canRead:"+file.canRead());
		System.out.println("canWrite:"+file.canWrite());
		System.out.println("isHidden:"+file.isHidden());
	}
}

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter;

/*
 * 获取功能
 * public String getAbsolutePath()  获取绝对路径
 * Public String getPath()	获取相对路径
 * public String getName()	获取名称
 * public long length()	获取长度、字节数
 * public long lastModified()	获取上一次修改时间,返回毫秒值
 * 
 */
public class FileDemo {
	public static void main(String[] args) {
		//创建文件对象
		File file=new File("demo\\test.txt");
		System.out.println(" getAbsolutePath:"+file.getAbsolutePath());
		System.out.println("  getPath:"+file. getPath());
		System.out.println(" getName:"+file.getName());
		System.out.println(" length:"+file.length());
		System.out.println(" lastModified:"+file.lastModified());
		
		Date date=new Date(file.lastModified());
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println(sdf.format(date));
	}
}

附上两个练习:

import java.io.File;

/*
 * 判断目录下是否有.jpg文件,若有则输出此文件
 * 
 * 分析:
 * 		A:封装e盘目录
 * 		B:获取目录下所有文件或文件夹的File数组
 * 		C:遍历该File数组,得到每一个File对象
 * 		D:判断是否文件:
 * 				是:继续判断是否为.jpg结尾
 * 					是:输出该文件名
 * 					否:不理
 * 				否:不理
 */			
public class FileDemo {
	public static void main(String[] args) {
		//封装e盘目录
		File file=new File("e:\\");
		
		//获取目录下所有文件或文件夹的File数组
		File[] fileArray=file.listFiles();
		
		//遍历该File数组,得到每一个File对象
		for(File f:fileArray){
			//是否是文件
			if(f.isFile()){
				//判断是否为。jpg结尾
				if(f.getName().endsWith(".jpg")){
					//输出该文件名
					System.out.println(f.getName());					
				}	
			}
		}
	}
}
import java.io.File;

/*
 * 需求:e:\电影\日韩影片下的视频名称改为
 * 		00_.avi
 * 思路:
 * 	A:封装目录
 * 	B:获取该目录下的所有文件File数组
 * 	C:遍历该File数组得到每一个File对象
 *  D:拼接一个新的名称,然后重命名即可
 */
public class FileDemo {
	public static void main(String[] args) {
		//封装目录
		File srcFolder=new File("E:\\电影\\日韩影片");
		
		//获取该目录下的所有的文件File数组
		File[] fileArray=srcFolder.listFiles();
		
		//遍历这个File数组,得到每一个File对象
		for (File file:fileArray){
			//System.out.println(file.getName());
			String name=file.getName();
			
			int startIndex=name.indexOf("-");
			String numberString =name.substring(startIndex+6, startIndex+7);
			System.out.println(numberString);
			
			String newName=numberString;
			
			File newFile=new File(srcFolder,newName);
			
			//重命名即可
			file.renameTo(newFile);
		}
	}
}

最后附上一份简单总结提纲:
File
(1)IO流操作中大部分都是对文件的操作,所以java就提供了File类供我们来操作文件
(2)构造方法
A:File file=new File(“e:\demo\a.txt”);
B:File file=new File(“e:\demo”,“a.txt”);
C:File file=new File(“e:\demo”);
File file2=new File(file,“a.txt”);
(3)File类的功能
A:创建功能
B:删除功能
C:重命名功能
D:判断功能
E:获取功能
F:高级功能
G:过滤器功能
(4)案例:
A:输出指定目录下指定后缀名的文件名称
a:先获取所有的,在遍历的时候,再输出
b:先判断,再获取,最后直接遍历输出即可
B:批量修改文件名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值