21-06-06 Java IO (File)

本文详细介绍了Java中的File类,包括其构造函数、静态属性及常用方法,如获取文件名、路径、绝对路径、父路径等。还展示了如何进行文件的创建、删除、重命名、判断文件属性以及目录操作。同时,提供了遍历文件夹及其子目录的递归方法。
摘要由CSDN通过智能技术生成

java.io.File类

文件和目录路径名的抽象表示形式,与平台无关。
File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输出/输入流。
File对象可以作为参数传递给流的构造函数
File类的常见构造函数:

public File(String pathname)
			以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.id中储存
public File(String parent,String child)
			以parent为父路径,child为子路径创建File对象

File的静态属性String separator储存了当前系统的路径分隔符
在UNIX中,此字段‘/’,在windows中,为’\\’

例:

public class io {
	public static void main(String []args){
		File f =new File("D:\\lsp");//这个时候f就是lsp文件夹(使用较多)
		File f1=new File("D:","lsp");//这个时候f1也是lsp文件夹
//注意,\在文件中是路径的分隔符,但是在java编程中一个\的意思是转移符,在java中\\或者/才是文件的分隔离符
//也可以File.separator作为文件分隔符	
}
}

	
	System.out.println(f.getName());//获取当前文件名或文件夹名
	
	
	File f2 =new File("src\\oop1\\ha.java");
	System.out.println(f.getPath());//获取当前文件或文件夹的路径,就是new File时候写的路径
	System.out.println(f.getAbsolutePath());//获取当前文件或文件夹的绝对路径
	System.out.println(f.getParent());//获取当前文件或文件夹的父级路径
	f.renameTo(new File("D:\\lsp2"));//给文件或文件夹重命名
	System.out.println(f2.exists());//判断文件是否存在
	System.out.println(f2.canWrite());//判断文件是否可写
	System.out.println(f2.canRead());//判断文件是否可读
	System.out.println(f2.isDirectory());//判断是否为文件夹
	System.out.println(f2.isFile());//判断是否为文件
	System.out.println(f2.lastModeified());//获取文件的最后修改时间,返回的是毫秒数
	System.out.println(f2.length());//返回文件的长度,单位为字节数

文件操作相关

创建文件

public static void main(String []args){
    File f4 =new File("D:\\lsp");
    System.out.print(f4.exists());
    if(!f4.exists()){ //当f4的文件不存在时创建f4的文件
    	try{
    		f4.createNewFile();//创建f4对象的文件
    	}catch(IOException e){
    		e.printStackTrace();
    	}
    }
	}

删除文件

f4.delete();

创建目录

File f5 =new File("D:\\test\\abc\\cc");
f5.mkdir();//创建单层目录,如果使用此方法创建多层目录 ,得一层一层创建
File f6 =new File("D:\\test\\abc\\a\\b\\c");
f6.mkdirs();//此方法直接用来创建多级目录
File f7 =new File("D:\\test");
String[] s1=f7.list(); //返回当前文件夹的子集,包括目录和文件
for(String s:s1){
	System.out.print(s);
}
File[] fs =f7.listFiles();//返回的是当前文件夹的子集的file对象,包括目录和文件
for(File ff: fs){
System.out.print(ff);
}

遍历d盘下的test文件,把test文件夹下所有的目录与文件全部遍历出来,不论层级有多深,要全部遍历出来,用递归的方式实现

public void test(File file){
if(file.isFile()){
System.out.println(file.getAbsoultePath()+"是文件");}
}else{System.out.println(file.getAbsoultePath()+"是文件夹");
//如果是文件夹,这个文件夹里就有可能有子文件夹或者文件
File []fs =file.listFiles();//获取当前文件夹下的子文件夹或者文件的file对象
if(fs!=null&&fs.length>0){
for(File ff : fs){
test(ff);	
}}}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值