欢迎访问宙启技术站
智能推送

使用Java编写文件操作函数:如何读写文件

发布时间:2023-06-20 17:02:57

Java 是一门具有卓越文本处理能力的面向对象编程语言,它提供了丰富的 API,使得文件的读写变得很简单。本篇文章将介绍如何使用 Java 编写文件操作函数,包括如何读写文件。

1.读文件

Java 中读取文件通常使用 FileInputStream 或 FileReader 类读取。这里我们将使用 FileReader。

public static void readFile(String fileName) {
    try {
        FileReader fileReader = new FileReader(fileName);

        int ch;
        while ((ch = fileReader.read()) != -1) {
            System.out.print((char) ch);
        }

        fileReader.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}

上述代码使用 FileReader 读取指定的文件,如果文件打开成功,就逐个字符读取文件内容,并打印到控制台上。注意,如果文件不存在,会抛出 IOException 异常。

2.写文件

Java 中写入文件通常使用 FileOutputStream 或 FileWriter 类写入。这里我们将使用 FileWriter。

public static void writeFile(String fileName, String content) {
    try {
        FileWriter fileWriter = new FileWriter(fileName);
        fileWriter.write(content);
        fileWriter.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

上述代码使用 FileWriter 将字符串写入指定的文件中。注意,如果文件不存在, FileWriter 会自动创建文件。如果文件打开成功,会使用 write 方法将字符串写入文件中。最后需要关闭 FileWriter,释放文件资源。

3.读写文件

Java 中读写文件可以使用 RandomAccessFile 类实现随机读写。使用 RandomAccessFile 可以随机读写指定位置的文件内容。

假设我们有一个文本文件,内容如下:

Java Tutorial
RandomAccessFile Example

我们可以使用以下代码在第二行插入一行新内容。

public static void insertLine(String fileName, int lineNumber, String content) {
    RandomAccessFile raf = null;

    try {
        raf = new RandomAccessFile(fileName, "rw");

        StringBuilder sb = new StringBuilder();
        String line = "";
        int counter = 0;
        long lastPointer = raf.getFilePointer();

        while ((line = raf.readLine()) != null) {

            if (counter == lineNumber - 1) {
                sb.append(content).append(System.lineSeparator());
            }

            sb.append(line).append(System.lineSeparator());
            lastPointer = raf.getFilePointer();
            counter++;
        }

        if (counter < lineNumber - 1) {
            sb.append(System.lineSeparator()).append(content);
            lastPointer = raf.length();
        }

        raf.seek(lastPointer);
        raf.write(sb.toString().getBytes());

    } catch (IOException e) {
        e.printStackTrace();
    } finally {

        try {
            raf.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

上述代码使用 RandomAccessFile 将新行插入到指定行号。注意,代码中使用 StringBuilder 缓存文件内容,读、写位置使用 RandomAccessFile 的 getFilePointer()、seek() 方法。最后还需要关闭 RandomAccessFile,释放文件资源。

总结

本篇文章介绍了如何使用 Java 编写文件操作函数,包括如何读写文件。通过使用 FileReader 和 FileWriter,我们可以方便地读写字符串和文本文件。通过使用 RandomAccessFile,我们还可以随机读写文件内容。开发者可以根据具体情况选择适当的方法,进行文件操作。