scala yield和文件的操作

import java.io.File
import scala.io.Source


object Demo2 {
  
//  列出所有的files
  private val files = new File(".").listFiles
//  
  private def filelines(file:File) = {
//    返回的类型是::List[String]
    Source.fromFile(file).getLines().toList
  }
//  显示文件的行数
  private def showfilelines() = {
//    返回的类型是::List[String]
    var file = new File("yhq.txt")
//    读取文件的某一行
    println(Source.fromFile(file).getLines().toList(1))
  }
//  显示所有 文件夹
  def showFiles() = {
      for(file<- files)
      println(file)
  }
      
  def main(args: Array[String]): Unit = {
    showFiles()
    showfilelines()
    var lineLengths = 
      for{
//        遍历文件
        file<-files
        if file.getName.endsWith(".txt")
//      遍历所有的行
        line<-filelines(file)
//        trim返回文件的副本,忽略文件中出現的空格
        trimmedLine = line.trim
//        模糊匹配
        if trimmedLine.matches(".*棒.*")
        
      } 
//  将读取到的内容放到yield中去  
    yield line+":合计"+trimmedLine.length()+"个字"
      
      lineLengths.foreach(println)
  }
  
}

转载于:https://www.cnblogs.com/ayhq/p/5392796.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值