久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

Scala的文件讀寫操作與正則表達式

目錄

在本篇文章中你將會學習并了解常用的文件處理任務,例如讀取文件的一行文本,本博客的要點包含:

1.Source.fromFile(…).getLines.toArray 輸出文件所有行
2.Source.fromFile(…).mkString 以字符串形式輸出文件內容
3.將字符串轉換為數字,可以使用toInt或toDouble方法
4.使用java的PrintWriter寫入文本文件
5.“正則”.r是一個Regex對象
6.若你的正則表達式包含反斜杠或者引號,請用”””…”””
7.正則模式包含分組,可以使用for(regex(變量1…,變量2)<- 字符串)

本篇文章要點如下:

讀取行

  // 讀取文件所有的行,可以調用scala.io.Source對象的getLines方法:  val source = Source.fromFile("a.txt","utf-8")  val lineIterator = source.getLines

結果是迭代器可以使用for循環處理這些行

for(i <- lineIterator) println(i)

也可以使用迭代器應用toArray或toBuffer方法,將這些行放到數組力或者數組緩沖行中,若想將讀取的的文件作為一個字符串,只需val conents = source.mkString

下面是簡單的代碼實例:讀取桌面上的a.txt

  object ReadFile {   def main(args: Array[String]): Unit = {   val read = new ReadFile()   val resource: String = "C:\Users\DonnieGao\Desktop\a.txt"   val encode = "UTF-8"   read.readFile(resource, encode)   println(read.readFileToStr(resource, encode))   }  }    class ReadFile {   /**   * 一行行讀取文件的內容   *   * @param resource 文件路徑   * @param code  文件編碼格式   */   def readFile(resource: String, code: String): Unit = {   var source: BufferedSource = null   try {    // 獲取文件的Source對象,第一個參數是文件的路徑,第二個文件的編碼格式    source = Source.fromFile(resource, code)    val lineIterator = source.getLines()    while (true) {    if (lineIterator.hasNext) {     println(lineIterator.next())    } else {     return    }    }   } finally {    // 釋放資源    source.close()   }   }     /**   * 將文本文件所有內容作為字符串   *   * @param resource 文件路徑   * @param code  文件編碼格式   * @return   */   def readFileToStr(resource: String, code: String): String = {   // 獲取文件的Source對象,第一個參數是文件的路徑,第二個文件的編碼格式   var source: BufferedSource = null   try {    source = Source.fromFile(resource, code)    source.mkString   } finally {    source.close()   }   }  }

讀取字符

要將文件中讀取單個字符,可以把Source對象當作迭代器,若僅僅只是想查看字符可以調用Source對象的buffered方法。

讀取詞法單元和數字

讀取源文件中所有空格隔開的詞法單元

val tokens = source.mkString.split("\s+")

若有個基本都是浮點型的文件,可以將其讀取到數組中:

  val numbers = for (w <- tokens) yield w.toDouble 或者也可   val numbers = token.map(_.toDouble)

讀取二進制文件

Scala并沒有提供讀取二進制文件的方法,可以使用java讀取二進制的方法,代碼示例

  val file = new File(fileName)  val in = new FileInputStream(file)  val bytes = new Array[Byte](file.length.toInt)  in.read(bytes)  in.close()

寫入文本文件

Scala沒有內建對寫入文件的支持,可借助java進行文件寫入操作例如使用java.io.PrintWriter

   /**   * Scala寫入文借助java的PrintWriter   */   def write(): Unit = {   val out = new PrintWriter("C:\Users\DonnieGao\Desktop\test.txt")   for (i <- 0 to 100) out.println(i)   out.close()   }

訪問文件目錄

Scala中沒有直接訪問某個目錄下的所有文件的方式或者遞歸遍歷有目錄的類

   /**   * 使用java列舉下所有的文件夾   * @param dir 文件目錄路徑   */   def dir(dir:String) = {   val dirFile = new File(dir)   val arrayFile= dirFile.listFiles()   for (i <- arrayFile){println(arrayFile.toBuffer)}   }

序列化

在java中聲明一個可以被序列號的類通常是下面這種:

  public class Person implements java.io.Serializable {   private static final long serialVersionUID = 4436475322569107137L;  }

Scala中聲明一個可以被序列化的類通常是下面這種:

  @SerialVersionUID(12356L) class ReadFile extends Serializable {     }

正則表達式

Scala中提供了正則操作處理scala.util.matching.Regex讓這件事情可以變得簡單。構造一個Regex對象,用String類的r方法即可

  object RegexDemo {   def main(args: Array[String]): Unit = {   // 初始化正則對象   val numPattern = "[0-9]+".r   val regex = "13 welcome to beijing"   // findAllIn方法返回遍歷所有匹配的迭代器,可以在for循環中使用   for (matchString <- numPattern.findAllIn(regex)) {    println(matchString)   }   // 查詢字符串首個匹配項   println(numPattern.findFirstIn(regex))   // 檢查某個字符串的開始部分能匹配,可以使用findPrefixOf   println(numPattern.findPrefixOf(regex))   }

總結

以上所述是小編給大家介紹的Scala的文件讀寫操作與正則表達式 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!

贊(1)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
91精品国产乱码久久久久久久| 国产精品久久亚洲不卡| 国产精品亚洲四区在线观看| 日本成人中文字幕| 91成人精品在线| 欧美一区网站| 欧美精品成人| 久久国产直播| 久久一二三区| 日韩高清在线不卡| 国产欧美欧美| 成人片免费看| 性感美女一区二区在线观看| 日韩欧美一区二区三区免费看| 欧产日产国产精品视频| 亚洲不卡av不卡一区二区| 欧美福利专区| 日本欧美韩国一区三区| 美女视频网站久久| 99精品综合| 91免费精品国偷自产在线在线| 电影91久久久| 亚洲视频播放| 国产精品一区毛片| 精品国产第一福利网站| 亚洲午夜国产成人| 国产中文字幕一区二区三区| 日韩av首页| 久久国产精品免费一区二区三区| 日韩免费在线| 国产欧美一区二区三区米奇| 色婷婷精品视频| 国产精品免费99久久久| 亚洲欧美日韩国产| 色网在线免费观看| 久久国内精品| 在线精品福利| 亚洲精品91| sm久久捆绑调教精品一区| 日韩va欧美va亚洲va久久| 亚洲一卡久久| 欧美不卡在线| 色在线中文字幕| 国产私拍福利精品视频二区| 亚洲激情偷拍| 99精品电影| 在线中文字幕播放| 欧美成a人片免费观看久久五月天| 香蕉国产精品| 免费观看久久av| 亚洲一级网站| 久久美女精品| 99精品美女| 欧美freesex黑人又粗又大| 久久亚州av| 国产一区二区视频在线看| 国产精品啊v在线| 日韩不卡免费视频| 日本精品国产| 久久av偷拍| 精品久久久网| 中文在线资源| 亚洲爱爱视频| 欧美va天堂| 亚洲视频国产| 欧美日韩亚洲一区三区| 日韩av一级片| 麻豆91在线播放| 成人日韩在线| 国产高清一区| 一本综合精品| 国产日韩欧美| 国产精品xxx| 麻豆国产精品一区二区三区| 91亚洲一区| 欧美成人日韩| 日本伊人午夜精品| 麻豆精品久久久| 色天使综合视频| 模特精品在线| 国产激情欧美| 激情欧美国产欧美| 日韩欧美三区| 国产精品精品| 99日韩精品| 国产精品手机在线播放| 日本免费一区二区三区四区| 亚洲精品一二三区区别| 亚洲欧美日本日韩| 欧美日韩夜夜| 日产精品一区| 人人爱人人干婷婷丁香亚洲| 亚洲伊人av| 日韩在线黄色| 蜜臀久久99精品久久一区二区 | 久久成人高清| 欧美特黄a级高清免费大片a级| 97精品国产99久久久久久免费| 蜜臀国产一区| 欧美性www| 视频一区国产视频| 久久尤物视频| 欧美一区成人| 午夜宅男久久久| 热三久草你在线| 7777精品| 天使萌一区二区三区免费观看| 高清日韩中文字幕| 日韩精品亚洲一区二区三区免费| 欧美日韩一区二区综合| 电影91久久久| 国产精品v一区二区三区| 先锋影音国产一区| 蜜臀久久99精品久久一区二区| 手机在线电影一区| 国产精品igao视频网网址不卡日韩 | 日韩视频1区| 亚洲欧美日韩视频二区| 高清av不卡| 另类小说一区二区三区| 日韩av不卡一区二区| 综合欧美亚洲| 天堂精品久久久久| 亚洲精品韩国| 亚洲精品三级| 亚洲专区视频| 欧美一区网站| 欧美性www| 国产剧情在线观看一区| 国产精品高清一区二区| 国产精品magnet| 精品视频97| 日韩毛片视频| 亚洲精品在线观看91| 精品91久久久久| 亚洲久久一区| 欧美亚洲网站| 国产精品4hu.www| 亚洲欧美日本国产专区一区| 国精品一区二区| 中文字幕av一区二区三区人 | 91综合久久爱com| 国产成人精品福利| 日韩啪啪电影网| 久久在线免费| 久久精品99国产国产精| 久久精品国内一区二区三区水蜜桃| 中文字幕日韩欧美精品高清在线| 国产精品17p| 在线免费观看亚洲| 黄色在线网站噜噜噜| 亚洲精品极品| 国产精品主播在线观看| 国产日韩欧美在线播放不卡| 欧美日韩在线二区| 91亚洲国产| 日本h片久久| 蜜臀久久99精品久久久久宅男| 欧美精品高清| 精品国内亚洲2022精品成人| 日韩一区欧美二区| 中文字幕在线视频网站| 青青草视频一区| 日本亚洲欧洲无免费码在线| 久久大逼视频| 鲁大师成人一区二区三区| 99精品在线观看| 国产成人精品一区二区免费看京 | 日本 国产 欧美色综合| 欧美日中文字幕| 免费高潮视频95在线观看网站| 国产精品一区高清| 国产精品香蕉| 免费日韩成人| 四虎8848精品成人免费网站| 欧美成人精品三级网站| 国产亚洲精品美女久久| 色在线中文字幕| 亚洲免费成人av在线| 国产一区不卡| 国产日韩欧美一区| 在线日韩成人| 亚洲男女自偷自拍| 亚洲特色特黄| 亲子伦视频一区二区三区| 精品香蕉视频| 美女久久久久久 | 亚洲一区日韩在线| 亚洲特色特黄| 88xx成人免费观看视频库| 国产精品99久久精品| 美女视频免费精品| 国产亚洲电影| 欧美激情一区| 精品国产亚洲一区二区三区大结局 | 亚洲最新无码中文字幕久久 | 亚洲经典在线| 亚洲aⅴ网站| 国产欧美日韩视频在线| 欧美1区2区3|