遍历目录并打印文件名:
def walk(file:File){
if (file.isFile)println(file.getName)else file.listFiles.foreach(walk)}
以上程序执行完后会报空指针异常,修改如下:
def walk(file:File){
if (file.isFile)println(file.getName)else if (file.isDirectory)file.listFiles.foreach(walk)
}
遍历目录并读取所有文件,保存到数组中:
var data = ArrayBuffer[String]()
def readfiles(file:File){
if (file.isFile){
var liness =Source.fromFile(file,"UTF-8").getLines().toBuffer
while(liness!=null){data++=liness}
}else if (file.isDirectory)file.listFiles.foreach(readfiles)
}
注意,toBuffer如果改成toArray会报告java.lang.OutOfMemoryError: Java heap space。原因是Array不可改变长度。
readfiles(new File("/home/zsm/test/file2"))
for (a<-data)println(a)