在 Scala 中向文件中写入文本

Suraj P 2023年1月30日
  1. 在 Scala 中使用 PrintWriter 将文本写入文件
  2. 在 Scala 中使用 FileWriter 将文本写入文件
  3. 在 Scala 中使用 Java NIO(New Input/Output)包将文本写入文件
在 Scala 中向文件中写入文本

本文将讨论将文本写入 Scala 文件的不同方法。

我们使用 java.io 对象将文本写入 Scala 中的文件,因为它依赖于 Java 对象来执行各种功能。

在 Scala 中使用 PrintWriter 将文本写入文件

必须执行以下步骤才能在 Scala 中写入文件。

  • 使用 fileName 创建一个 PrintWriter 对象。
  • 使用 write() 方法写入文件。
  • 使用 close 函数在完成写操作后关闭文件。

例子:

import java.io._

object MyObject {
    def main(args: Array[String]) {
        val writer = new PrintWriter(new File("C:\\Users\\srjsu\\OneDrive\\Desktop\\temp.txt"))  //specify the file path
        writer.write("Iron Man is the best")
        writer.close()
    }
}

输出:

Iron Man is the best

执行程序后,输出将写入桌面文件夹中的 temp.txt 文件。

在 Scala 中使用 FileWriter 将文本写入文件

必须执行以下步骤才能使用 FileWriter 在 Scala 中写入文件。

  • 使用 fileName 创建一个 FileWriter 对象。
  • 使用 write() 方法写入文件。
  • 使用 close 函数在完成写操作后关闭文件。

例子:

import java.io._

object MyObject {
    def main(args: Array[String]) {
        val writeFile = new File("C:\\Users\\srjsu\\OneDrive\\Desktop\\test.txt")
        val text = "We are learning Scala programming language"
        val writer = new BufferedWriter(new FileWriter(writeFile))
        writer.write(text)
        writer.close()
    }
}

输出:

We are learning Scala programming language

执行程序后,上面的输出将写入桌面文件夹中的 test.txt 文件。

在 Scala 中使用 Java NIO(New Input/Output)包将文本写入文件

这是在 Scala 中将文本写入文件的最佳方法。使用 Java NIO 包,我们可以以非常简洁的方式写入文件,即输入更少的代码。

示例 1:

import java.nio.file.{Paths, Files}
import java.nio.charset.StandardCharsets

object MyObject {
    def main(args: Array[String]) {
        val inputText = "I remembered black skies\nThe lightning all around me\nI remembered each flash\nAs time began to blur\nLike a startling sign\nThat fate had finally found me\nAnd your voice was all I heard\nThat I get what I deserve\nSo give me reason\nTo prove me wrong\nTo wash this memory clean\nLet the floods cross\nThe distance in your eyes";
        Files.write(Paths.get("C:\\Users\\srjsu\\OneDrive\\Desktop\\test.txt"), inputText.getBytes(StandardCharsets.UTF_8))
    }
}

输出:

I remembered black skies
The lightning all around me
I remembered each flash
As time began to blur
Like a startling sign
That fate had finally found me
And your voice was all I heard
That I get what I deserve
So give me reason
To prove me wrong
To wash this memory clean
Let the floods cross
The distance in your eyes

在上面的示例中,getBytes() 将字符串编码为 UTF-8 字符集。

示例 2:

如果输入字符串很小,我们可以将所有内容写在一行中。

import java.nio.file.{Paths, Files}
import java.nio.charset.StandardCharsets

object MyObject {
    def main(args: Array[String]) {
        Files.write(Paths.get("C:\\Users\\srjsu\\OneDrive\\Desktop\\test.txt"), "HELLO WORLD!".getBytes(StandardCharsets.UTF_8))
    }
}

输出:

HELLO WORLD!

执行程序后,上面的输出将写入两个代码示例的 test.txt 文件中。

作者: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

相关文章 - Scala File