【发布时间】:2018-12-19 06:03:56
【问题描述】:
我正在尝试读取一个固定宽度的文件并将其写为文本文件,下面是代码。字段的输入文件布局长度(4,10,3,5,3,1,1,5,7)
094482018-07-10 022 14012 000 0 30000A 002290{
059412018-07-10 022 14013 000 0 30000A 002290{
015172018-07-10 046 17502 000 0 30000A 001699I
scala> val inputdata = scala.io.Source.fromFile("/C:/Users/rrrrrr/Desktop/datas
tage/inputdata.txt")
inputdata: scala.io.BufferedSource = non-empty iterator
scala> val lines = inputdata.getLines
lines: Iterator[String] = non-empty iterator
scala> val matched=lines.map(l=>(l.substring(0,5).trim(),l.substring(5,5).trim()
))
matched: Iterator[(String, String)] = non-empty iterator
scala> val outputdata= new File("/C:/Users/rkumar0/Desktop/folder/output_N4.txt"
)
outputdata: java.io.File = C:\Users\rrrrrrr\Desktop\folder\output_N4.txt
scala> val writer= new BufferedWriter(new FileWriter(outputdata))
writer: java.io.BufferedWriter = java.io.BufferedWriter@759c0c14
scala> matched.foreach{line =>
| writer.write(line)
| writer.newLine()
| }
<console>:19: error: overloaded method value write with alternatives:
(x$1: Int)Unit <and>
(x$1: String)Unit <and>
(x$1: Array[Char])Unit
cannot be applied to ((String, String))
writer.write(line)
^
scala>
我的输出文件创建为空。
【问题讨论】:
-
l.substring(5,5)保证为空的String。给它添加.trim()是没有意义的。
标签: scala