1. 程式人生 > >Scala 解析檔案內容簡單例項

Scala 解析檔案內容簡單例項

import scala.io.Source  //操作檔案的類

if(args.length > 0){
  for(line <- Source.fromFile(args(0)).getLines())
    println(line.length + " " + line)
}
else
  Console.err.println("Please Enter file")
val lines = Source.fromFile(args(0)).getLines().toList
println("use function mode show file lines:" + lines)

def widthOfLength(str: String) = str.length.toString.length
var maxWidth = 0
for(line <- lines)
  maxWidth = maxWidth.max(widthOfLength(line))
  println("max width about line:" + maxWidth)
// after code sample result
val longStr = lines.reduceLeft(
  (a,b) => if(a.length > b.length) a else b
)
maxWidth = widthOfLength(longStr)
println("use reduceLeft method:" + maxWidth)
for(line <- lines){
  val numSpace = maxWidth -widthOfLength(line)
  var padding = " " * numSpace
  println(padding + line.length + " | " + line)
}
如果包含中文字元的時候這裡會丟擲一個異常,java.nio.charset.MalformedInputException: Input length = 1,這個是因為字元編碼的原因,需要處理字元編碼。