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,這個是因為字元編碼的原因,需要處理字元編碼。