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

如何在Java函数中实现文件读写功能?

发布时间:2023-09-04 09:00:41

在Java中,可以使用标准库中的输入输出流来实现文件的读写功能。下面是一个示例代码,展示了如何在Java函数中实现文件的读写功能。

import java.io.*;

public class FileReadWrite {
    public static void main(String[] args) {
        try {
            // 写入文件
            writeToFile("file.txt", "Hello, World!");
            
            // 从文件中读取内容
            String content = readFromFile("file.txt");
            System.out.println("Content: " + content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    // 写入文件
    public static void writeToFile(String fileName, String content) throws IOException {
        FileWriter fileWriter = null;
        try {
            fileWriter = new FileWriter(fileName);
            fileWriter.write(content);
        } finally {
            if (fileWriter != null) {
                fileWriter.close();
            }
        }
    }
    
    // 从文件中读取内容
    public static String readFromFile(String fileName) throws IOException {
        FileReader fileReader = null;
        try {
            fileReader = new FileReader(fileName);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            StringBuilder stringBuilder = new StringBuilder();
            String line;
            
            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line);
            }
            
            return stringBuilder.toString();
        } finally {
            if (fileReader != null) {
                fileReader.close();
            }
        }
    }
}

上述代码示例了如何使用FileWriter类将内容写入文件,以及如何使用FileReaderBufferedReader类从文件中读取内容。在写入文件时,我们使用finally语句块来确保文件写入流的关闭,即使出现异常也能够正常关闭。同样地,在读取文件时,我们也使用了finally语句块来确保文件读取流的关闭。

此外,在实际开发中,为了更好地管理资源,可以使用Java 7引入的try-with-resources语句来简化代码。使用try-with-resources语句后,不需要显式地关闭流,系统会自动关闭资源。下面是使用try-with-resources语句改写的示例代码:

import java.io.*;

public class FileReadWrite {
    public static void main(String[] args) {
        try {
            // 写入文件
            writeToFile("file.txt", "Hello, World!");

            // 从文件中读取内容
            String content = readFromFile("file.txt");
            System.out.println("Content: " + content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 写入文件
    public static void writeToFile(String fileName, String content) throws IOException {
        try (FileWriter fileWriter = new FileWriter(fileName)) {
            fileWriter.write(content);
        }
    }

    // 从文件中读取内容
    public static String readFromFile(String fileName) throws IOException {
        try (FileReader fileReader = new FileReader(fileName);
             BufferedReader bufferedReader = new BufferedReader(fileReader)) {
            StringBuilder stringBuilder = new StringBuilder();
            String line;

            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line);
            }

            return stringBuilder.toString();
        }
    }
}

上述代码示例了如何使用try-with-resources语句简化代码,无需在finally语句块中显式地关闭流。