在 Scala 中向文件中写入文本
Suraj P
2023年1月30日
-
在 Scala 中使用
PrintWriter
将文本写入文件 -
在 Scala 中使用
FileWriter
将文本写入文件 - 在 Scala 中使用 Java NIO(New Input/Output)包将文本写入文件
本文将讨论将文本写入 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