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,这个是因为字符编码的原因,需要处理字符编码。