Java中文件操作

本文深入探讨了Java中File类的使用,包括文件与目录的创建、删除、重命名,以及获取文件属性和目录操作的基本方法。通过简洁的代码示例,详细解释了如何在Java程序中高效地进行文件和目录管理。

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

 

一、Java把目录当做一种特殊的文件,即文件名的列表。通过File类的方法,可以得到文件或目录的信息包括名称、所在路径、读写性、长度等,进而可以进行创建新目录、创建临时文件、改变文件名、删除文件、列出一个目录中所有的文件或与某个模式相匹配的文件等操作。File类声明如下:

Public class File extends Object implements Serializable,Comparable

二、构造方法

1、  public File(String pathname):根据parent抽象路径名和child路径名字符创建一个新File对行啊。

2、  public File(File parent,String child):通过制定路径名字符串转换为抽象路径名来创建一个新File对象。

3、  public File(String parent,String child)根据parent路径名字符串和child路径名字符串创建一个新的File对象。

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

5、  下列语句演示创建一个新文件对象的多种方法:

File f1 = new File(“data.txt”);

File f2 = new File(\\mydir,”data.txt”);

File f3 = new File(“\\ect”);

File f4 = new File(dir,“data.txt”);

            指定文件名创建f1,指定文件名和目录名创建f2,指定目录名创建dir,最后则以目录对象dir和文件名创建f3。表示文件路径时,使用转义的反斜线作为分隔符,即“\\”代替“\”。以“\\”开头的路径名表示绝对路径,否则表示相对路径。

三、利用一段代码演示 生成目录文件和删除目录文件

import java.io.*;

public class DirTest {

     public static void main(String[] args) {

       //在当前目录下创建新目录newdir

       File mynewDir = new File("newdir");

       mynewDir.mkdir();

       //删除刚刚创建的newdir目录

       mynewDir.delete();

           }

}

很短的一段代码,简单易懂!

四、 文件操作中一些常用的方法

1、    访问文件对象

public String getName()  //返回文件对象名,不包含路径名

public String getPath()    //File对象中封装的路径是什么,获取的就是什么

public String getAbsolutePath()   //返回绝对路径名,包含文件名

public String getParent()      //返回父文件对象的路径名,如果封装的是相对路径,返回null

public File   getParentFile()    //返回父文件对象

2、    获得文件属性

    public long length()           //返回文件的字节长度

    public boolean exists()    //测试指定的文件是否存在

    public long lastModified()   //返回文件最后被修改的时间

3、    文件操作

    public boolean renameTo(Filedest)  //文件重命名

    public boolean  delete()   //删除空目录或文件

4、    目录操作

    public boolean mkdir () //创建目录,正常建立时返回true

    public String[] list()    //返回目录中的所有文件名字符串

五、public File[] listFiles()    //返回目录中的所有文件对象

实例,列出指定目录下的文件以及子文件夹中的文件。

分析:需要使用递归—方法自己调用自己。

注意:使用递归时,一定要有递归的终止条件,并且调用次数也不要过多,否则会出现内存溢出。

       public void listDir(File dir){

       System.out.println(dir.getName());

       File[] files=dir.listFiles();

       for(int i=0;i<files.length;i++){     //构造循环  递归的终止条件

              if(files[i].isFile())

                     System.out.println(files[i].getName());

              else

                     listDir(files[i]);

         }

}

六、FileFilter和FilenameFilter接口

Java提供了两个借口----FileFilter和FilenameFilter,用来实现对文件名字符串的过滤。

1、FileFilter接口:用于抽象路径名的过滤器。此接口的实例可传递给 File 类的 listFiles(FileFilter) 方法。

成员方法: boolean accept(File pathname)
测试指定抽象路径名是否应该包含在某个路径名列表中。

2、  FilenameFilter接口:实现此接口的类实例可用于过滤器文件名。Abstract Window Toolkit 的文件对话框组件使用这些实例过滤 File 类的 list 方法中的目录清单。

 成员方法:boolean accept(File dir,String name)
        测试指定文件是否应该包含在某一文件列表中。

七、随机文件操作

RandomAccessFile类可以对文件进行随机读写操作。

1、构造方法—该对象只能对文件进行操作

RandomAccessFile(File file,String mode) ;

RandomAccessFile(String name,String mode);

  2、读写数据的常用方法

读、写基本数据类型: readInt()、writeInt(int n)等;

读、写UTF字符串:  readUTF()、writeUTF(String str);

读取文件中的一行: readLine();

3、文件随机读写流的读取指针控制

long getFilePointer() ---得到当前的文件读取指针。

void seek(long pos) ---把指针从开始移动到pos位置。

long length() ---得到文件的长度(有多少个字节) 。

void setLength(long newLength)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值