HOWTO · Java

在 Java 中将字符串保存到文件

本文介绍如何使用 Java 将字符串保存到文件。

本页内容

本文将介绍在 Java 中将字符串写入文件的方法。

在 Java 中使用 PrintWriter 类将字符串写入到文件中

要将字符串写入文件,我们可以使用 PrintWriter 类。该类的构造函数创建一个具有指定名称作为参数的文件。

如果字符串不存在,或者我们无法创建文件,或者在打开或创建文件时发生其他错误,则构造函数将抛出 FileNotFoundException。

println() 函数将在文件中打印字符串并终止一行。

close() 方法将关闭流并释放与之关联的系统资源。

package writeStringToFile;

import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Objects;

public class WriteStringToFile {
  public static void main(String[] args) {
    PrintWriter printWriter = null;
    String textToBeWritten = "Hello";
    {
      try {
        printWriter = new PrintWriter("writerFile.txt");
      } catch (FileNotFoundException e) {
        System.out.println("Unable to locate the fileName: " + e.getMessage());
      }
      Objects.requireNonNull(printWriter).println(textToBeWritten);
      printWriter.close();
    }
  }
}

使用 Java7 的 Files 类将字符串写入文件

Files 类仅包含对文件,目录或其他类型的文件进行操作的静态方法。write() 方法将字节写入文件。选项参数指定如何创建或打开文件。如果不存在任何选项,则此方法的工作方式就像已经存在 CREATE,TRUNCATE_EXISTING 和 WRITE 选项一样。

该方法有两个参数,path 和 byte。

path 指定目标文件的路径。getBytes() 方法将字符串转换为 Byte 格式。

如果在写入或创建文件时发生错误,该方法将引发 IOException。

package writeStringToFile;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class WriteStringToFileJava7 {
  public static void main(String[] args) throws IOException {
    String contentToWrite = "Hello File!";
    String path =
        "C:\IdeaProjects\JavaProblems\src\main\java\writeStringToFile\target\targetFile.txt";
    Files.write(Paths.get(path), contentToWrite.getBytes());
  }
}

使用 Java 中的 FileWriter 类将字符串写入文件

BufferedWriter 类创建一个使用默认大小的输出缓冲区的缓冲区字符输出流。它以任何 writer 对象为参数。FileWriter 类构造函数采用文件名,该文件名是存储字符串的目标。write 方法将文本写入对象中的关联文件。当文件不可放置时,此方法将引发 IOException。

现在,在 finally 块中,应该释放用于输入和输出操作的资源。close 方法还会抛出 IOException 类,因此我们应该在 try-catch 块中使用 close 函数,或者在父方法中添加 throws 子句。

package writeStringToFile;

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

public class WriteToFileUsingFileWriter {
  public static void main(String[] args) throws IOException {
    BufferedWriter bufferedWriter = null;
    try {
      bufferedWriter = new BufferedWriter(new FileWriter("targetFile.txt"));
      bufferedWriter.write("Hey! Content to write in File");

    } catch (IOException e) {
      System.out.println("Exception occurred: " + e.getMessage());

    } finally {
      if (bufferedWriter != null)
        bufferedWriter.close();
    }
  }
}