文件操作--File

本文介绍了Java中File类的基本使用方法,包括如何创建文件对象、常用方法及其功能,如创建文件、删除文件、判断文件是否存在等,并提供了代码示例。

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

为了很方便的代表文件的概念,以及存储一些对于文件的基本操作,在java.io包中设计了一个专门的类——File类。

         File类中包含了大部分和文件操作的功能方法,该类的对象可以代表一个具体的文件或文件夹,所以以前曾有人建议将该类的类名修改成FilePath,因为该类也可以代表一个文件夹,更准确的说是可以代表一个文件路径。

         下面介绍一下File类的基本使用。

         1File对象代表文件路径

File类的对象可以代表一个具体的文件路径,在实际代表时,可以使用绝对路径也可以使用相对路径。

下面是创建的文件对象示例。

                   public File(String pathname)

         该示例中使用一个文件路径表示一个File类的对象,例如:

                   File f1 = new File(“d:\\test\\1.txt”);

                   File f2 = new File(“1.txt”);

                  File f3 = new File(“e:\\abc”);

这里的f1f2对象分别代表一个文件,f1是绝对路径,而f2是相对路径,f3则代表一个文件夹,文件夹也是文件路径的一种。

public File(String parent, String child)

                            也可以使用父路径和子路径结合,实现代表文件路径,例如:

                                     File f4 = new File(“d:\\test\\”,”1.txt”);

                            这样代表的文件路径是:d:\test\1.txt

         2File类常用方法

File类中包含了很多获得文件或文件夹属性的方法,使用起来比较方便,下面将常见的方法介绍如下:

                   acreateNewFile方法

                                     public boolean createNewFile() throws IOException

该方法的作用是创建指定的文件。该方法只能用于创建文件,不能用于创建文件夹,且文件路径中包含的文件夹必须存在。

                   bdelect方法

                                     public boolean delete()

该方法的作用是删除当前文件或文件夹。如果删除的是文件夹,则该文件夹必须为空。如果需要删除一个非空的文件夹,则需要首先删除该文件夹内部的每个文件和文件夹,然后在可以删除,这个需要书写一定的逻辑代码实现。

                   cexists方法

                                     public boolean exists()

                            该方法的作用是判断当前文件或文件夹是否存在。

                   dgetAbsolutePath方法

                                     public String getAbsolutePath()

该方法的作用是获得当前文件或文件夹的绝对路径。例如c:\test\1.t则返回c:\test\1.t

                   egetName方法

                                     public String getName()

                            该方法的作用是获得当前文件或文件夹的名称。例如c:\test\1.t,则返回1.t

                   fgetParent方法

                                     public String getParent()

                            该方法的作用是获得当前路径中的父路径。例如c:\test\1.t则返回c:\test

                   gisDirectory方法

                                     public boolean isDirectory()

                            该方法的作用是判断当前File对象是否是目录。

                   hisFile方法

                                     public boolean isFile()

                            该方法的作用是判断当前File对象是否是文件。

                   ilength方法

                                     public long length()

该方法的作用是返回文件存储时占用的字节数。该数值获得的是文件的实际大小,而不是文件在存储时占用的空间数。

                   jlist方法

                                     public String[] list()

该方法的作用是返回当前文件夹下所有的文件名和文件夹名称。说明,该名称不是绝对路径。

                   klistFiles方法

                                     public File[] listFiles()

                            该方法的作用是返回当前文件夹下所有的文件对象。

                   lmkdir方法

                                     public boolean mkdir()

该方法的作用是创建当前文件文件夹,而不创建该路径中的其它文件夹。假设d盘下只有一个test文件夹,则创建d:\test\abc文件夹则成功,如果创建d:\a\b文件夹则创建失败,因为该路径中d:\a文件夹不存在。如果创建成功则返回true,否则返回false

                   mmkdirs方法

                                     public boolean mkdirs()

该方法的作用是创建文件夹,如果当前路径中包含的父目录不存在时,也会自动根据需要创建。

                   nrenameTo方法

                                     public boolean renameTo(File dest)

该方法的作用是修改文件名。在修改文件名时不能改变文件路径,如果该路径下已有该文件,则会修改失败。

                   osetReadOnly方法

                                     public boolean setReadOnly()

                            该方法的作用是设置当前文件或文件夹为只读。


1、输出一"."开头的文件

package day01;

import java.io.File;
import java.io.FileFilter;
/**
 * listFiles方法支持文件过滤器
 * FileFilter接口
 * 实现该接口需要实现抽象方法:
 * boolean accept(File f)
 * 该方法要求我们定义过滤条件
 * listFiles方法会将当前目录下满足accept方法的子项返回
 * @author Administrator
 *
 */
public class FileDemo02 {

	public static void main(String[] args) {
		File dir=new File(".");
		if(dir.isDirectory()){
			//创建过滤器实例
			FileFilter filter=new MyFilter();
			//使用过滤器过滤子项
			File[] subs=dir.listFiles(filter);
			for(File sub: subs){
				System.out.println(sub.getName());
			}
		}

	}
	

}
class MyFilter implements FileFilter{

	public boolean accept(File file) {
//		String name=file.getName();
//		return name.startsWith(".");
		return file.getName().startsWith(".");
		
	}
		
	}

2、创建多级目录下的一个文件

package day01;

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

/**
 * 创建多级目录下的一个文件
 * @author Administrator
 *
 */
public class FileDemo3 {

	public static void main(String[] args) throws IOException {
		  File file =new File(
				  "a"+File.separator+
				  "b"+File.separator+
				  "c"+File.separator+
				  "d"+File.separator+
				  "e"+File.separator+
				  "f"+File.separator+
				  "g"+File.separator+
				  "h.text"
				  );
		  /**
		   * 创建文件时,应该首先判断当前文件
		   * 所在的目录是否存在,不存在会抛出异常
		   */
		  /**
		   * File getParentFile()
		   * 获取当前文件或目录所在的父目录
		   */
		  File parent =file.getParentFile();
		  if(!parent.exists()){
			  parent.mkdirs();
		  }
		  if(!file.exists()){
			  file.createNewFile();
			  System.out.println("文件创建成功!");
		  }
	}

}

3、判断文件是否存在,不存在创建文件

File file=new File(path+filename);   
    if(!file.exists())   
    {   
        try {   
            file.createNewFile();   
        } catch (IOException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
    }  

4、判断文件夹是否存在,不存在创建文件夹

    File file =new File(path+filename);   
    //如果文件夹不存在则创建   
    if  (!file .exists())     
    {     
        file .mkdir();   
    }     



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值