Java File

原文:https://www.studytonight.com/java/file-handling.php

在 Java 中,File 类用于表示文件或目录路径名。因为文件和目录的名称在不同的平台上有不同的格式。文件的路径可以是绝对的,也可以是相对的。有许多File类的方法可以用来创建、读取、删除或重命名文件。

此类扩展了对象类并实现了可序列化接口。下面是类的声明。

申报

public class File extends Object implements Serializable, Comparable<File>

File类位于 java.io 包中,所以我们需要导入包来使用它的功能。

以下是File类的字段。

| S.no | 田 | 描述 | | one | 路径分隔符 | 它表示为字符串,用于分隔路径的字符。 | | Two | pathSeparatorChar | 它用作路径分隔符。 | | three | 分离器 | 它表示为字符串,用于分隔路径的字符。这是默认的名称分隔符。 | | four | 分割器 | 它表示为字符串,用于分隔路径的字符。这是默认的名称分隔符。 |

以下是File类的构造器。

1.文件(文件父级,字符串子级)

2.文件(字符串路径名)

3.文件(字符串父项,字符串子项)

4. 选项卡

下面是File类的方法。

| 没有。 | 方法 | 描述 | | one | createTempFile(字符串前缀,字符串后缀) | 它用于创建一个空文件。 | | Two | createNewFile() | 它用于创建一个新文件,该文件为空并且具有抽象路径名。 | | three | canWrite() | 它用于检查应用是否可以修改具有抽象路径的文件。 | | four | canExecute() | 它用于检查应用是否可以执行具有抽象路径的文件。 | | five | 可以读取() | 它用于检查应用是否可以读取具有抽象路径的文件 | | six | isAbsolute() | 用于检查抽象路径名是否为绝对路径名。 | | seven | isDirectory() | 用于检查具有抽象路径名的文件是否为目录。 | | eight | isFile() | 用于检查具有抽象路径名的文件是否为文件。 | | nine | getName() | 它用于获取文件的名称。 | | Ten | getparent() | 它用于获取父文件的名称 | | Eleven | toPath() | 用于获取 java.nio.file.Path 的对象。 | | Twelve | toURI() | 它用于创建具有抽象路径名的文件的网址。 | | Thirteen | 列表文件() | 它用于获取抽象路径名的数组。 | | Fourteen | getFressSpace() | 它用于获取未分配的字节数。 | | Fifteen | 列表(文件名过滤器过滤器) | 它用于获取具有抽象路径名的文件名的字符串数组。 | | Sixteen | mkdir() | 它用于创建目录名。 |

示例:创建文件

让我们通过创建一个新文件来开始使用文件。要创建一个文件,我们使用 createNewFile 方法,该方法以文件名作为参数。如果文件尚不存在,此方法将创建一个新文件。请看下面的例子。

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

public class FileCreateDemo1
{
        public static void main(String[] args) 
        {
            try 
            {
                File Obj = new File("FileDemo.txt");
                if (Obj.createNewFile())    {
                    System.out.println("******File created******");
                         System.out.println("Name of the file = " + Obj.getName());
                  } 
                else{
                   System.out.println("File already exists.");
                }
        } 
        catch (IOException e){
            e.printStackTrace();
        }
   }
}

create-file

示例:写入文件

创建文件后,现在将数据写入文件。为了写入数据,使用了 Filewrite 类的方法。它将写入数据,但可能会引发异常,因此请确保也处理这些异常。

     import java.io.FileWriter;   
import java.io.IOException;  

public class FileWriteDemo1 
{
  public static void main(String[] args) 
{
    try 
    {
        FileWriterobj = new FileWriter("FileDemo.txt");
        obj.write("Welcome to studytonight.com.");
        obj.close();
        System.out.println("File is Updated.");
    }
    catch (IOException e) 
    {
        e.printStackTrace();
    }
  }
}

write-file write-file

示例:读取文件

为了从文件中读取数据,我们使用了File类和场景类来处理系统资源的输入和输出。这里我们使用两种方法hasNextLine()nextLine()顺序读取数据。

     import java.io.File;  
import java.io.FileNotFoundException;  
import java.util.Scanner; 

public class FileReadDemo1
{
      public static void main(String[] args) 
        {
            try 
            {
                File Obj = new File("FileDemo.txt");
                Scanner obj1 = new Scanner(Obj);
                while (obj1.hasNextLine()) 
                {
                  String obj2 = obj1.nextLine();
                 System.out.println(obj2);
                }
                obj1.close();
            }catch (FileNotFoundException e) 
            {
                e.printStackTrace();
            }
        }
}

reading-file

示例:复制文件

让我们再举一个例子,将一个文件的数据复制到另一个文件。这里我们使用文件输入和输出流来读写数据。虽然这只是将一个文件数据复制到另一个文件的过程,但是 Java 提供了内置的方法来将一个文件数据直接复制到另一个文件。见下面的例子。

     import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileCopyDemo1 {
    public static void main(String[] args) {
        FileInputStream a = null;
        FileOutputStream b = null;
        try {
            File obj_in = new File("FileDemo.txt");
            File obj_out = new File("FileDemo1.txt");

            a = new FileInputStream(obj_in);
            b = new FileOutputStream(obj_out);

            byte[] buffer = new byte[1024];

            int length;
            while ((length = a.read(buffer)) > 0) {
                b.write(buffer, 0, length);
            }
            a.close();
            b.close();
            System.out.println("File copied successfully!!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

copy-file copy-file

文件权限

我们可以使用内置的方法检查权限,比如:文件的读、写、删除等。File类提供方法canRead()canWrite()等检查操作是否允许。

     import java.io.*;

public class FilePermissionDemo1 {
    public static void main(String[] args) {
        File a = new File("FileDemo1.txt");

        boolean b = a.exists();
        if (b == true) {
            System.out.println("Executable: " + a.canExecute());
            System.out.println("Readable: " + a.canRead());
            System.out.println("Writable: " + a.canWrite());
        } else {
            System.out.println("File not found.");
        }
    }
}

file-permission

正在检索文件信息

这是文件处理的一个重要部分,获取文件的元数据是保存文件信息所必需的,如:File类型、文件位置、文件权限等。在这个例子中,我们使用了 File 类的一些内置方法来获取关于文件的信息。见下面的例子

     import java.io.File;  
public class FileInfoDemo1
{ 
  public static void main(String[] args) 
    {
        File Obj = new File("FileDemo1.txt");
        if (Obj.exists()) 
        {
            System.out.println("File name= " + Obj.getName());
            System.out.println("***********************************");
            System.out.println("Absolute path= " + Obj.getAbsolutePath());
            System.out.println("***********************************");
            System.out.println("Writeable= " + Obj.canWrite());
            System.out.println("***********************************");
            System.out.println("Readable= " + Obj.canRead());
            System.out.println("***********************************");
            System.out.println("File size in bytes= " + Obj.length());
        } 
        else 
        {
            System.out.println("file does not exist.");
        }
    }
}

retrieve-file

删除文件

在这种情况下,我们需要删除一个文件,然后 Java 提供了方法delete()来帮助使用代码删除一个文件。在这个例子中,我们正在删除文件。方法返回一个布尔值,以确保文件已成功删除。

     import java.io.File;
public class FileDeleteDemo1 {
    public static void main(String[] args) {
        File Obj = new File("FileDemo.txt");
        if (Obj.delete()) {
            System.out.println(Obj.getName() + " has been deleted");
        } else {
            System.out.println("Failed");
        }
    }
}

delete-file