【Java基础】文件处理

简介: Java基础,文件的处理与随机访问

计算机程序运行时,数据保存在系统的内存中,由于关机时内存中的数据全部丢失,所以必须把那些需要长期保存的数据存放在磁盘文件里,需要时再从文件里读出。因此,文件输人输出操作是程序必备的功能。

一、Java语言对文件与文件夹的管理

文件夹是管理文件的特殊机制,同类文件保存在同一个文件夹下不仅可以简化文件管理而且还可以提高工作效率。Java语言不仅支持文件管理,还支持文件夹管理。在java.io包中定义了一个 File类专门用来管理磁盘文件和文件夹,而不负责数据的输人输出。每个 File 类对象表示一个磁盘文件或文件夹,其对象属性中包含了文件或文件夹的相关信息,如文件名、长度、所含文件个数等,调用它的方法可以完成对文件或文件夹的管理操作,如创建、删除等。

1. 创建 File 类的对象

因为每个File类对象对应系统的一个磁盘文件或文件夹,所以创建File类对象需要出它所对应的文件名或文件夹名。

File 类的构造方法


public File(String path)  用path参数创建File对象所对应的磁盘文件名或文件夹名及其路径

public File(String path, String name)   以path为路径,以name为文件或文件夹名创建File对象

public File(File dir, String name)      用一个已经存在代表某磁盘文件夹的File对象dir作为文件夹,以name作为文件或文件夹名来创建File对象

2. 获取文件或文件夹属性

一个File对象一经创建,就可以通过调用它的方法来获得其所对应的文件或文件夹的属性。

File类中获取文件或文件夹属性的常用方法


public boolean exists()      判断文件或文件夹是否存在

public boolean isFile()      判断对象是否代表有效文件

public boolean isDirectory() 判断对象是否代表有效文件夹

public String getName()      返回文件名或文件夹名

public String getPath()      返回文件或文件夹的路径

public long length()             返回文件的字节数

public boolean canRead()       判断文件是否可读

public boolean canWrite() 判断文件是否可写

public String[ ] list()              将文件夹中所有文件名保存在字符串数组中返回

public boolean equals(File f) 比较两个文件或文件夹是否相同

3. 文件或文件夹操作

File类中对文件或文件夹操作的常用方法


public boolean renameTo(File newFile) 将文件重命名成newFile对应的文件名

public boolean delete( ) 将当前文件删除,若删除成功返回true,否则返回false

public boolean mkdir() 创建当前文件夹的子文件夹。成功返回true,否则返回false


代码示例:创建File类对象,输出指定文件夹下的内容

i

mport java.io.File;
public class ListFiles {
    public static void main(String[] args) {
        // 指定文件夹路径
        String directoryPath = "path/to/your/directory";
       
        // 创建File对象
        File folder = new File(directoryPath);
       
        // 检查该路径是否是一个文件夹
        if (folder.isDirectory()) {
            // 获取文件夹下的所有文件和子文件夹
            File[] listOfFiles = folder.listFiles();
           
            // 判断文件夹是否为空
            if (listOfFiles != null) {
                // 遍历文件和文件夹
                for (File file : listOfFiles) {
                    if (file.isFile()) {
                        System.out.println("File: " + file.getName());
                    } else if (file.isDirectory()) {
                        System.out.println("Directory: " + file.getName());
                    }
                }
            } else {
                System.out.println("The folder is empty.");
            }
        } else {
            System.out.println("The specified path is not a directory.");
        }
    }
}

二、对文件夹的随机访问

Java还定义了一个功能更强大,使用更方便的随机访问文件类 RandomAccessFile 它可以实现对文件的随机读写。

随机访问文件类 RandomAccessFile 也是在 java.io包中定义的。RandomAccessFile 是有关文件处理中功能齐全、文件访问方法众多的类。RandomAccessFile类用于进行随意位置、任意类型的文件访问,并且在文件的读取方式中支持文件的任意读取而不只是顺序读取。

RandomAccessFile类的构造方法


public RandomAccessFile( String name,String mode) 以name来指定随机文件流对象所对应的文件名,以mode表示对文件的访问模式

public RandomAccessFile( File file, String mode)    以file来指定随机文件流对象所对应的文件名,以mode表示对文件的访问模式


说明:

访问模式 mode 表示所创建的随机读写文件的操作状态,mode 的取值如下:

r              表示以只读方式打开文件。

rw           表示以读写方式打开文件,使用该模式只用一个对象就可以同时实现读和写两种操作。

代码示例:

import java.io.File;
import java.util.Random;
public class RandomAccessToFolder {
    public static void main(String[] args) {
        // 指定文件夹路径
        String folderPath = "C:/example_folder";
        File folder = new File(folderPath);
        // 获取文件夹中的所有文件
        File[] files = folder.listFiles();
        // 创建一个Random对象
        Random random = new Random();
        // 生成一个随机索引
        int randomIndex = random.nextInt(files.length);
        // 通过索引访问文件夹中的文件
        File randomFile = files[randomIndex];
        System.out.println("随机访问的文件: " + randomFile.getName());
    }
}

这段代码首先指定了一个文件夹路径,然后使用File类获取文件夹中的所有文件。接着,创建一个Random对象,并生成一个随机索引。最后,通过索引访问文件夹中的文件,并输出文件名。

目录
相关文章
|
4月前
|
存储 缓存 Java
最新Java基础系列课程--Day10-IO流文件处理
最新Java基础系列课程--Day10-IO流文件处理
|
4月前
|
存储 Java
最新Java基础系列课程--Day10-IO流文件处理(一)
最新Java基础系列课程--Day10-IO流文件处理
|
27天前
|
Java API
Java文件处理完全指南:创建、读取、写入和删除文件详细解析
Java的文件处理非常灵活和强大。通过上述代码示例,我们可以清楚地理解在Java中如何高效地进行文件的创建、读取、写入和删除操作。值得注意的是,文件操作时我们常常会用到一些流(Stream)和读写字符的类,在操作完成之后,应当及时关闭这些资源,这可以通过使用try-with-resources语句来自动完成。这种方法不仅代码简洁,还能有效防止资源泄漏。总体而言,熟练掌握Java文件处理对于开发实用、健壮的应用程序至关重要。
66 1
|
2月前
|
存储 缓存 NoSQL
使用Java编写高效的文件处理和存储系统
使用Java编写高效的文件处理和存储系统
|
4月前
|
Java
Java 文件处理完全指南:创建、读取、写入和删除文件详细解析
文件处理简介 文件处理是任何应用程序的重要部分。Java 提供了许多用于创建、读取、更新和删除文件的方法。 Java 文件处理 Java 中的文件处理主要通过 java.io 包中的 File 类完成。该类允许我们处理文件,包括创建、读取、写入和删除文件。
457 1
|
4月前
|
缓存 Java Apache
最新Java基础系列课程--Day10-IO流文件处理(三)
最新Java基础系列课程--Day10-IO流文件处理
|
4月前
|
Java
最新Java基础系列课程--Day10-IO流文件处理(二)
最新Java基础系列课程--Day10-IO流文件处理
|
Java
Java通用方法 -- 文件处理工具类
各类文件的读写操作
154 0
|
Java
java 文件处理 工具类
java 文件处理 工具类
136 0
|
2天前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理