0
我可以以“DATA> 11,12,54,34,67,23”的形式输入数据,并以此格式保存到txt文件中;将用户输入导出到txt文件
(DATA> 11,12,54,34,67,23)
但是,如果我尝试并再次运行此之后添加另一个,这第一个被删除并替换。 我怎样才能让它没有括号被保存,因为我的阅读功能不支持括号,下一个保存在下一行而不是替换原来的?
这里是我的代码
val mapdata3 = readFile("newDataFile.txt")
var mapdata2 = Map()
println ("Data in file " + mapdata3)
// *******************************************************************************************************************
// UTILITY FUNCTIONS
//GETS THE DATA FROM THE DATA.TXT
def readFile(filename: String): Map[String, List[Int]] = {
processInput(Source.fromFile(filename).getLines)
}
def processInput(lines: Iterator[String]): Map[String, List[Int]] = {
Try {
lines.foldLeft(Map[String, List[Int]]()) { (acc, line) =>
val splitline = line.split(",").map(_.trim).toList
acc.updated(splitline.head, splitline.tail.map(_.toInt))
}
}.getOrElse {
println("Sorry, an exception happened.")
Map()
}
}
// *****************************************************************************************
print("Enter Data key > ")
val key = readLine()
var result = key.split(";").map(_ split ">") collect { case Array(k, v) => (k, v) } toMap
println ("Data entered into file" + result)
// Writes the newly created stock list to the txt file
val data = result
val file = "newDataFile.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()
在Writer val的末尾,我还没有调用文件输出流吗? “(new FileOutputStream(file)”@yǝsʞǝlA –
我的意思是:new FileOutputStream(file,true) –