scala - 将scala中生成的数据写入文本文件

标签 scala output

我希望有人能提供帮助,我是 scala 的新手,在将输出写入文本文件时遇到了一些问题。

我有一个数据表,我已经编写了一些代码来一次一行地读取它,做我想让它做的事,现在我需要它把那一行写到一个文本文件中。

例如,我有以下数据类型表

姓名、日期、goX、goY、stopX、stopY

1, 12/01/01, 1166, 2299, 3300, 4477

我的代码,获取 goX 和 goY 的第一个字符并创建一个新数字,在本例中为 1.2,对 stopX 和 stopY 执行相同的操作,因此在本例中你得到 3.4

我想在文本文件中获取的内容本质上是以下内容:

走,停

1.2, 3.4

我希望它执行数百行,直到我在文本文件中有一长串打开和关闭。

我当前的代码如下,这几乎肯定不是最优雅的解决方案,但它是我的第一个 scala/java 代码:

import scala.io.Source

object FT2 extends App {
for(line<-Source.fromFile("C://Users//Data.csv").getLines){

var array = line.split(",")
val gox = (array(2));
val xStringGo = gox.toString
val goX =xStringGo.dropRight(1|2)
val goy = (array(3));
val yStringGo = goy.toString
val goY = yStringGo.dropRight(1|2)
val goXY = goX+"."+goY

val stopx = (array(4));
val xStringStop = stopx.toString
val stopX =xStringStop.dropRight(1|2)
val stopy = (array(3));
val yStringStop = stopy.toString
val stopY = yStringStop.dropRight(1|2)
val stopXY = stopX+"."+stopY

val GoStop = List(goXY,stopXY)
//This is where I want to print GoStop to a text file
}

非常感谢任何帮助!

最佳答案

应该这样做:

import java.io._

val data = List("everything", "you", "want", "to", "write", "to", "the", "file")

val file = "whatever.txt"
val writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)))
for (x <- data) {
  writer.write(x + "\n")  // however you want to format it
}
writer.close()

但是你可以通过创建一个自动为你关闭东西的方法让它变得更好:

def using[T <: Closeable, R](resource: T)(block: T => R): R = {
  try { block(resource) }
  finally { resource.close() }
}

using(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)))) { 
  writer =>
    for (x <- data) {
      writer.write(x + "\n")  // however you want to format it
    }
}

所以:

using(new BufferedWriter(new OutputStreamWriter(new FileOutputStream("output.txt")))) { 
  writer =>
    for(line <- io.Source.fromFile("input.txt").getLines) {
      writer.write(line + "\n")  // however you want to format it
    }
}

关于scala - 将scala中生成的数据写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28969738/

相关文章:

scala - Haskell 和 Scala 中的通用量化类型?

unit-testing - 在 ScalaTest 中 `should` 、 `can` 、 `must` 之间有什么区别

scala - 一次带有文件上传extractRequestContext和案例类的Akka HTTP API服务?

c - 结构体成员不会存储在变量中

list - 如何测试列表中所有字符的长度并根据长度调整 Output( 的位置?

Java流密码(带有输入和输出txt文件)输出随机字符不完整的解密字符串

Scala - TypeTags、ClassTags 和 WeakTypeTags 的运行时性能

ScalaMock:无法处理参数超过 22 个的方法(目前)

c - 仅将负数相乘并仅从 C 中的文件中输出负整数

R:多个模型并排的方差分析输出