校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > Scala的文件讀寫(xiě)操作與正則表達(dá)式

Scala的文件讀寫(xiě)操作與正則表達(dá)式

熱門(mén)標(biāo)簽:梅縣地圖標(biāo)注 地圖標(biāo)注教學(xué)點(diǎn) 外呼系統(tǒng)無(wú)呼出路由是什么原因 西藏智能外呼系統(tǒng)代理商 甘肅醫(yī)療外呼系統(tǒng)排名 400電話(huà)辦理電話(huà)辦理 呼叫系統(tǒng)外呼只能兩次 貴港公司如何申請(qǐng)400電話(huà) ai電話(huà)機(jī)器人搭建

目錄

在本篇文章中你將會(huì)學(xué)習(xí)并了解常用的文件處理任務(wù),例如讀取文件的一行文本,本博客的要點(diǎn)包含:

1.Source.fromFile(...).getLines.toArray 輸出文件所有行
2.Source.fromFile(...).mkString 以字符串形式輸出文件內(nèi)容
3.將字符串轉(zhuǎn)換為數(shù)字,可以使用toInt或toDouble方法
4.使用java的PrintWriter寫(xiě)入文本文件
5.“正則”.r是一個(gè)Regex對(duì)象
6.若你的正則表達(dá)式包含反斜杠或者引號(hào),請(qǐng)用"""..."""
7.正則模式包含分組,可以使用for(regex(變量1...,變量2)- 字符串)

本篇文章要點(diǎn)如下:

讀取行

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

結(jié)果是迭代器可以使用for循環(huán)處理這些行

for(i - lineIterator) println(i)

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

下面是簡(jiǎn)單的代碼實(shí)例:讀取桌面上的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 {
 /**
 * 一行行讀取文件的內(nèi)容
 *
 * @param resource 文件路徑
 * @param code  文件編碼格式
 */
 def readFile(resource: String, code: String): Unit = {
 var source: BufferedSource = null
 try {
  // 獲取文件的Source對(duì)象,第一個(gè)參數(shù)是文件的路徑,第二個(gè)文件的編碼格式
  source = Source.fromFile(resource, code)
  val lineIterator = source.getLines()
  while (true) {
  if (lineIterator.hasNext) {
   println(lineIterator.next())
  } else {
   return
  }
  }
 } finally {
  // 釋放資源
  source.close()
 }
 }

 /**
 * 將文本文件所有內(nèi)容作為字符串
 *
 * @param resource 文件路徑
 * @param code  文件編碼格式
 * @return
 */
 def readFileToStr(resource: String, code: String): String = {
 // 獲取文件的Source對(duì)象,第一個(gè)參數(shù)是文件的路徑,第二個(gè)文件的編碼格式
 var source: BufferedSource = null
 try {
  source = Source.fromFile(resource, code)
  source.mkString
 } finally {
  source.close()
 }
 }
}

讀取字符

要將文件中讀取單個(gè)字符,可以把Source對(duì)象當(dāng)作迭代器,若僅僅只是想查看字符可以調(diào)用Source對(duì)象的buffered方法。

讀取詞法單元和數(shù)字

讀取源文件中所有空格隔開(kāi)的詞法單元

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

若有個(gè)基本都是浮點(diǎn)型的文件,可以將其讀取到數(shù)組中:

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

讀取二進(jìn)制文件

Scala并沒(méi)有提供讀取二進(jìn)制文件的方法,可以使用java讀取二進(jìn)制的方法,代碼示例

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

寫(xiě)入文本文件

Scala沒(méi)有內(nèi)建對(duì)寫(xiě)入文件的支持,可借助java進(jìn)行文件寫(xiě)入操作例如使用java.io.PrintWriter

 /**
 * Scala寫(xiě)入文借助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()
 }

訪(fǎng)問(wèn)文件目錄

Scala中沒(méi)有直接訪(fǎng)問(wèn)某個(gè)目錄下的所有文件的方式或者遞歸遍歷有目錄的類(lèi)

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

序列化

在java中聲明一個(gè)可以被序列號(hào)的類(lèi)通常是下面這種:

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

Scala中聲明一個(gè)可以被序列化的類(lèi)通常是下面這種:

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

正則表達(dá)式

Scala中提供了正則操作處理scala.util.matching.Regex讓這件事情可以變得簡(jiǎn)單。構(gòu)造一個(gè)Regex對(duì)象,用String類(lèi)的r方法即可

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

總結(jié)

以上所述是小編給大家介紹的Scala的文件讀寫(xiě)操作與正則表達(dá)式 ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • 淺談Scala的Class、Object和Apply()方法
  • PHP警告Cannot use a scalar value as an array的解決方法
  • php下關(guān)于Cannot use a scalar value as an array的解決辦法
  • ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之間的區(qū)別

標(biāo)簽:涼山 哈密 常州 泰安 湖州 海口 本溪 大興安嶺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Scala的文件讀寫(xiě)操作與正則表達(dá)式》,本文關(guān)鍵詞  Scala,的,文件,讀寫(xiě),操作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Scala的文件讀寫(xiě)操作與正則表達(dá)式》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Scala的文件讀寫(xiě)操作與正則表達(dá)式的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久99国产精品久久| 欧美成人高清电影在线| 中文字幕亚洲一区二区av在线| 奇米四色…亚洲| 久久精品亚洲精品国产欧美kt∨| 午夜精品久久久久久久蜜桃app| 不卡一区二区三区四区| 亚洲国产乱码最新视频 | 欧美少妇一区二区| 日本欧美韩国一区三区| 国产精品私人影院| 久久99国产精品成人| 精品国产乱码久久久久久久久| 国产精品欧美极品| 国产精品伊人色| 国产精品国产三级国产专播品爱网| 精品一区中文字幕| 亚洲精品免费在线播放| 精品国产三级电影在线观看| 色999日韩国产欧美一区二区| 国产精品理论片| 99视频有精品| 日本成人在线一区| 欧美激情综合五月色丁香| 精品视频一区二区不卡| 亚洲高清在线视频| 亚洲国产精品高清| 日韩精品一区二区三区swag| 91香蕉视频在线| 国产精品一区专区| 日本伊人色综合网| 一级特黄大欧美久久久| 国产欧美一区二区在线观看| 国产成人精品综合在线观看| 久久蜜桃av一区精品变态类天堂 | 日本乱人伦一区| 国产一区二区三区免费看 | 国产剧情在线观看一区二区| 亚洲第一主播视频| 亚洲人成亚洲人成在线观看图片| 91网站视频在线观看| 久久精品国产99国产| 欧美精品一区二区三区一线天视频| 亚洲成在人线免费| 18欧美亚洲精品| 国产日韩亚洲欧美综合| 制服丝袜亚洲色图| 不卡的电影网站| 久久这里只有精品首页| 欧美一个色资源| 91精品欧美综合在线观看最新| 看电视剧不卡顿的网站| 爽爽淫人综合网网站| 久久午夜电影网| 666欧美在线视频| 欧美日韩第一区日日骚| 欧美在线视频全部完| 日韩1区2区日韩1区2区| 偷窥国产亚洲免费视频| 欧美aⅴ一区二区三区视频| 亚洲精品自拍动漫在线| 91精品国产综合久久精品| 国产盗摄精品一区二区三区在线| 一区二区三区日韩在线观看| 欧美videossexotv100| 欧美日韩国产免费| 色94色欧美sute亚洲线路一久| 亚洲视频在线一区二区| 亚洲欧洲一区二区在线播放| 91.com视频| 日韩精品在线网站| 精品国免费一区二区三区| 欧美日韩情趣电影| 欧美日韩中字一区| 九九九精品视频| 国产a久久麻豆| 91视频一区二区三区| 欧美色视频一区| 日韩一区二区在线免费观看| 精品久久久久久久久久久久包黑料| 色婷婷综合久久久久中文 | 免费成人结看片| 秋霞午夜鲁丝一区二区老狼| 麻豆中文一区二区| 成人激情免费视频| 欧美色网站导航| 欧美电视剧在线观看完整版| 精品少妇一区二区三区在线播放| 一本色道综合亚洲| 91精品国产综合久久久蜜臀图片 | 亚洲乱码国产乱码精品精可以看| 在线看不卡av| 日韩免费观看高清完整版| 欧洲av在线精品| 日韩美女一区二区三区| 国产精品蜜臀在线观看| 亚洲自拍偷拍欧美| 久久成人综合网| 高清国产一区二区| 日本不卡一二三| 岛国精品在线播放| 欧美高清视频不卡网| 国产午夜精品在线观看| 欧美变态凌虐bdsm| 国产精品久久久久aaaa樱花| 亚洲国产视频一区| 中文字幕五月欧美| 免费看日韩a级影片| 成人精品国产福利| 日韩无一区二区| 一区二区三区精密机械公司| 亚洲免费观看高清完整版在线观看熊| 中文字幕av一区二区三区高| 一区二区三区国产精品| 亚洲精品国久久99热| 一区二区三区在线视频播放| 一区视频在线播放| 三级亚洲高清视频| 成人av高清在线| 91精品国产综合久久久久久久久久 | 亚洲精品水蜜桃| 久久福利视频一区二区| 日本精品视频一区二区三区| 精品国产三级a在线观看| 亚洲国产精品久久不卡毛片| 亚洲一区免费视频| 免费的成人av| 一本到高清视频免费精品| 久久蜜桃av一区二区天堂| 午夜电影久久久| 91久久免费观看| 国产精品久久久久国产精品日日 | 日韩三级视频在线看| 亚洲综合视频网| 日本v片在线高清不卡在线观看| 亚洲人成7777| 不卡欧美aaaaa| 欧美视频第二页| 日韩美女精品在线| 亚洲大片一区二区三区| 91天堂素人约啪| 欧美大肚乱孕交hd孕妇| 亚洲另类中文字| 国产精品一区免费视频| 日韩免费成人网| 麻豆成人久久精品二区三区红 | 国产69精品久久久久777| 国产精品99久久久久久似苏梦涵 | 91网站视频在线观看| 亚洲视频免费观看| 91在线视频免费观看| 国产精品私房写真福利视频| 日本欧美大码aⅴ在线播放| 日韩一区二区电影在线| 久久69国产一区二区蜜臀| 欧美中文字幕不卡| 国产精品白丝在线| 色88888久久久久久影院按摩| 国产欧美日韩视频一区二区| 成人午夜av电影| 一区二区三区色| 日韩一区二区三区在线| 国产成人在线看| 亚洲精品国产无天堂网2021| 盗摄精品av一区二区三区| 精品处破学生在线二十三| 日日噜噜夜夜狠狠视频欧美人| 99re6这里只有精品视频在线观看| 久久精品夜色噜噜亚洲aⅴ| 日本女人一区二区三区| 亚洲精品国产精品乱码不99| 亚洲乱码中文字幕综合| 欧美特级限制片免费在线观看| 国产精品久久久久久妇女6080 | 不卡电影一区二区三区| 久久色在线视频| 91免费视频大全| 欧美aaa在线| 亚洲天堂免费在线观看视频| 欧美一区在线视频| 成人黄色大片在线观看| 天堂一区二区在线免费观看| 国产色婷婷亚洲99精品小说| 欧美亚洲综合久久| 国产精品99久久久久| 日本一区二区三区免费乱视频| 国产美女精品一区二区三区| 精品国产乱码久久久久久图片| 蜜乳av一区二区| 亚洲色图另类专区| 不卡av免费在线观看| 美女尤物国产一区| 一区二区三区日韩在线观看| 日本乱人伦aⅴ精品| 狠狠色2019综合网| 亚洲第一激情av| 国产精品天干天干在观线| 99国产精品久| 国产精品资源在线| 日日夜夜一区二区|