亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

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

2020-01-20 21:59:22
字體:
來源:轉載
供稿:網友

目錄

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

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的文件讀寫操作與正則表達式 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲精品成人av久久ww| 日韩av电影在线网| 亚洲国产私拍精品国模在线观看| 日韩欧美一区二区三区久久| 午夜精品一区二区三区视频免费看| 最近2019中文字幕第三页视频| 92看片淫黄大片看国产片| 亚洲欧美一区二区精品久久久| 亚洲人成77777在线观看网| 亚洲国产精久久久久久久| 欧美激情二区三区| 国内伊人久久久久久网站视频| 欧美丰满老妇厨房牲生活| 亚洲一区二区中文| 欧美午夜性色大片在线观看| 亚洲激情视频在线观看| 国产成人av在线播放| 国产精品福利无圣光在线一区| 欧美视频免费在线| 日韩欧美中文第一页| 国产精品久久久久久亚洲调教| 国产精品网红福利| 91精品国产综合久久香蕉的用户体验| 91国内精品久久| 欧美一级黑人aaaaaaa做受| 57pao成人国产永久免费| 亚洲精品欧美极品| 欧美天堂在线观看| 麻豆国产va免费精品高清在线| 亚洲欧洲在线播放| 日韩欧美国产激情| 久久人人爽人人爽爽久久| 国产精品白嫩初高中害羞小美女| 国产免费一区二区三区在线观看| 一区二区成人精品| 九色精品美女在线| 91香蕉嫩草影院入口| 亚洲精品动漫久久久久| 欧美壮男野外gaytube| 久久不射电影网| 亚洲精品一区二区三区不| 久久久久久有精品国产| 欧美大片免费观看| 亚洲在线免费观看| 中文字幕久久亚洲| 亚洲精品久久视频| 久久亚洲精品毛片| 日韩一区在线视频| 日韩av手机在线观看| 国产91精品青草社区| 日本中文字幕不卡免费| 亚洲色图激情小说| 亚洲成色999久久网站| 亚洲色图欧美制服丝袜另类第一页| 精品国产一区二区三区久久狼黑人| 最近中文字幕mv在线一区二区三区四区| 国产亚洲xxx| 国产福利视频一区二区| 欧美电影免费观看网站| 日韩va亚洲va欧洲va国产| 九色精品美女在线| 91精品国产99| 欧美视频中文字幕在线| 国产经典一区二区| 亚洲精品xxxx| 亚洲精品福利在线观看| 欧美日韩加勒比精品一区| 亚洲精品一区二区三区婷婷月| 久久综合久久美利坚合众国| 另类图片亚洲另类| 成人亚洲欧美一区二区三区| 欧美肥婆姓交大片| 亚洲男人av在线| 色综合久久中文字幕综合网小说| 日韩成人高清在线| 91av视频在线免费观看| 精品国产91久久久| 日韩中文字幕精品| 欧美激情视频在线| 欧美成年人在线观看| 欧美成人激情视频免费观看| 亚洲一区二区三区在线免费观看| 精品动漫一区二区| 国产精品爱久久久久久久| 精品亚洲国产视频| 国产精品高潮呻吟久久av黑人| 国产精品久久久精品| 亚洲精品欧美极品| 久久久伊人日本| 久久精品99久久香蕉国产色戒| 欧美在线视频在线播放完整版免费观看| 亚洲人成网在线播放| 国产日韩欧美在线播放| 8x海外华人永久免费日韩内陆视频| 亚洲精品一区二区在线| 国色天香2019中文字幕在线观看| 国产99久久精品一区二区永久免费| 日韩av男人的天堂| 热久久免费国产视频| 欧美成人免费视频| 欧洲午夜精品久久久| 亚洲护士老师的毛茸茸最新章节| 久久久久久久久久久免费| 久久精品国产69国产精品亚洲| 成人春色激情网| 国产亚洲成av人片在线观看桃| 欧美理论电影网| 日韩av在线网址| 福利二区91精品bt7086| 97在线免费观看| 欧美另类69精品久久久久9999| 亚洲美女激情视频| 久久免费成人精品视频| 日本精品久久中文字幕佐佐木| 欧美成人自拍视频| 美女扒开尿口让男人操亚洲视频网站| 日韩精品丝袜在线| 茄子视频成人在线| 欧美视频专区一二在线观看| 精品中文字幕在线2019| 日本精品久久中文字幕佐佐木| 国产亚洲一级高清| 亚洲国产成人精品久久久国产成人一区| 日本19禁啪啪免费观看www| 日韩美女av在线| 91色琪琪电影亚洲精品久久| 欧美理论电影网| 亚洲国产又黄又爽女人高潮的| 亚洲成人国产精品| 国产va免费精品高清在线观看| 亚洲图片制服诱惑| 欧美成人性色生活仑片| 日韩av理论片| 欧美三级欧美成人高清www| 欧美日韩激情视频8区| 97视频在线观看视频免费视频| 色偷偷噜噜噜亚洲男人| 中文字幕日韩av综合精品| 高清欧美电影在线| 国模精品视频一区二区| 成人乱人伦精品视频在线观看| 国产亚洲精品va在线观看| 国产成人精品国内自产拍免费看| 亚洲国产精品高清久久久| 亚洲japanese制服美女| 日韩av免费看网站| 久久久久亚洲精品成人网小说| 国产精品美女免费视频| 日韩电视剧在线观看免费网站| 久久色免费在线视频| 亚洲va电影大全| 尤物九九久久国产精品的分类| 国产综合香蕉五月婷在线| 国产精品久久久久久久久久久新郎| 亚洲男人7777| 日韩电视剧在线观看免费网站| 国产精品免费在线免费| 在线观看精品国产视频| 黄色成人在线播放| 国产亚洲日本欧美韩国| 久久免费少妇高潮久久精品99| 大伊人狠狠躁夜夜躁av一区| 日韩精品视频三区| 精品五月天久久|