12.1操作文件的类—File(血干JAVA系列)

12.1.1 File类中的主要方法和常量

序 号 方法或常量 类 型 描 述 
 1 public static final String pathSeparator 常量 表示路径的分隔符(windows是:“;”)
2 public static final String separator 常量 表示路径的分隔符(windows是:)
3 public File(String pathname) 构造 创建File类对象,传入完整路径
4 public File(File parent,String child) 构造 根据指定的父路径创建子文件
5 public boolean createNewFile() throws IOException
普通 创建新文件
6 public boolean delete() 普通 删除文件
7 public boolean exists() 普通 判断文件是否存在
8 public boolean isDirectory() 普通 判断给定的路径是否是一个目录
9 public long length() 普通 返回文件的大小
10 public String[] list() 普通 列出指定目录的全部内容,只是列出了名称
11 public File[] listFiles() 普通 列出指定目录的全部内容,会列出路径
12 public boolean mkdir() 普通 创建一个目录
13 public boolean mkdirs() 普通 创建多级目录
14 public boolean renameTo(File dest) 普通 为己有的文件重新命名
15 public long lastModified() 普通 取得文件的最后一次修改日期时间
16 public File getParentFile() 普通 取得当前路径的父路径

12.1.2 使用File类操作文件

1.实例操作1——创建一个新文件[createNewFile()]

File类的对象实例化完成之后,就可以使用createNewFile()创建一个新文件,但是此方法使 用了 t h r o w s关键字,所以在使用中,必须使用tr y . . . c a t c h进行异常的处理。例如,现在要在C:\Users\28251\Desktop\上创建一个test.txt的文件

package jiaqi;

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

public class demo001 
{

	public static void main(String[] args)
	{
		File f=new File("C:\\Users\\28251\\Desktop\\test.txt");
		try 
		{
			f.createNewFile();
		} 
		catch(IOException e) 
		{
			e.getStackTrace();
		}
	}

}

观察File类中提供的两个常量[separator] [pathSeparator]

package jiaqi;

import java.io.File;

public class demo371_2
{

	public static void main(String[] args) 
	{
		//   C:\Users\28251\Desktop1 ; C:\Users\28251\Desktop2 ; C:\Users\28251\Desktop3
		//多个路径时用;分割       
		System.out.println(File.pathSeparator);
		//单个路径中\分割  
		System.out.println(File.separator);
	}

}

修改创建文件的代码[推荐做法]

package jiaqi;

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

public class demo371_3 
{
	public static void main(String arg[])
	{
		String path="C:" + File.separator + "Users" + File.separator + "28251" + File.separator + "Desktop" + File.separator + "test.txt";
		File f=new File(path);
		try 
		{
			f.createNewFile();
		}
		catch (IOException e) 
		{
			e.getStackTrace();
		}
	}
}

2.实例操作2—— 删除一个文件[delete()]

删除文件

package jiaqi;

import java.io.File;

public class demo372_1 
{
	public static void main(String  arg[])
	{
		File f=new File("C:" + File.separator + "Users" + File.separator + "28251" + File.separator + "Desktop" + File.separator + "test.txt");
		f.delete();
	}
}

在删除文件中增加判断

package jiaqi;

import java.io.File;

public class demo372_2 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String path="C:" + File.separator + "Users" + File.separator + "28251" + File.separator + "Desktop" + File.separator + "test.txt";
		File f=new File(path);
		//存在就删除
		if(f.exists())
		{
			f.delete();
		}
		
	}

}

综合创建、删除文件的操作

package jiaqi;

import java.io.File;

public class demo372_3 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String path="C:" + File.separator + "Users" + File.separator + "28251" + File.separator + "Desktop" + File.separator + "test1.txt";
		File f=new File(path);
		//存在就删除
		if(f.exists())
		{
//			System.out.println("YES");
			f.delete();
		}
		//不存在就创建
		else
		{
//			System.out.println("NO");
			try 
			{
				f.createNewFile();
			}
			catch (Exception e) 
			{
				e.getStackTrace();
			}
		}
		
	}

}

3.实例操作3——创建一个文件夹[mkdir()][mkdirs()]

创建一个文件夹

package jiaqi;

import java.io.File;

public class demo372_4 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String path="C:" + File.separator + "Users" + File.separator + "28251" + File.separator + "Desktop" + File.separator + "mdln"; 
		File f=new File(path);
		
		//getParentFile()当前路径的父路径,
		//即如果path是从根开始,无父路径
		//即如果path不是从根开始,有父路径
		
		//父路径不存在,创建文件夹
		if(f.getParentFile().exists())
		{
			System.out.println("ssucced");
			f.mkdir();
		}
	}

}

4.实例操作4——列出指定目录的全部文件

(1) public String[] list():列出全部名称,返回一个字符串数组。
(2) public File[] listFiles():列出完整的路径,返回一个File对象数组。

用list()方法列出一个目录中的全部内容

package jiaqi;

import java.io.File;

public class demo374_1 
{
	public static void main(String[] args) 
	{
		String path="C:" + File.separator + "Users" + File.separator + "28251" + File.separator + "Desktop"; 
		File f=new File(path);
		//list()返回的是       字符串数组
		String str[]=f.list();
		for(int i=0;i<str.length;i++)
		System.out.println(str[i]);	
	}

}

用listFiles()方法列出一个目录中的全部内容

package jiaqi;

import java.io.File;

public class demo374_2
{

	public static void main(String[] args)
	{
		String path="C:" + File.separator + "Users" + File.separator + "28251" + File.separator + "Desktop"; 
		File f=new File(path);
		
		//listFiles()返回File数组对象
		//返回整个完整路径
		File file[]=f.listFiles();
		
		for(int i=0;i<file.length;i++)
		{
			System.out.println(file[i]);
		}

	}

}

5.实例操作5——判断一个给定的路径是否是目录[isDirectory()]

判断一个给定的路径是否是目录

可以直接使用isDirectory()方法判断给定的一个路径是否是目录。

package jiaqi;

import java.io.File;

public class demo375_1
{

	public static void main(String[] args)
	{
		//文件夹
		File f=new File("C:" + File.separator + "Users" + File.separator + "28251" + File.separator + "Desktop");		
		if(f.isDirectory())
		{
			System.out.println("YES");
		}
		else 
		{
			System.out.println("NO");
		}
		
		//具体文件
		File f1=new File("C:" + File.separator + "Users" + File.separator + "28251" + File.separator + "Desktop" + File.separator + "test.txt");
		if(f1.isDirectory())
		{
			System.out.println("YES");
		}
		else 
		{
			System.out.println("NO");
		}
	}

}

12.1.3 列出指定目录的全部内容

package jiaqi;

import java.io.File;

public class demo376_1 
{
	public static void main(String arg[]) 
	{
		File f=new File("f:"+File.separator);
		print(f);
	}
	public static void print(File file)
	{
		if(file!=null)
		{
			//文件加
			if(file.isDirectory())//判断文件夹
			{
				File f[]=file.listFiles();
				if(f!=null)//递归循环
				{
					for(int i=0;i<f.length;i++)
					{
						print(f[i]);
					}
				}
			}
			//文件
			else
			{
				System.out.println(file);
			}
		}
	}
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿斯卡码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值