好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Scala的文件讀寫操作與正則表達式

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

熱門標簽:梅縣地圖標注 地圖標注教學點 外呼系統無呼出路由是什么原因 西藏智能外呼系統代理商 甘肅醫療外呼系統排名 400電話辦理電話辦理 呼叫系統外呼只能兩次 貴港公司如何申請400電話 ai電話機器人搭建

目錄

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

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

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

標簽:涼山 哈密 常州 泰安 湖州 海口 本溪 大興安嶺

巨人網絡通訊聲明:本文標題《Scala的文件讀寫操作與正則表達式》,本文關鍵詞  Scala,的,文件,讀寫,操作,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Scala的文件讀寫操作與正則表達式》相關的同類信息!
  • 本頁收集關于Scala的文件讀寫操作與正則表達式的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 50岁老女人毛片一级亚洲| 精品国产欧美片一区二区| 女人光裸奶孑图片| 国产日产精品久久久久兰花| 国内a级毛片免费···| jzzjlzz亚洲乱熟在线播放| 一边伸舌一边喘气助眠| 夜夜做日日做夜夜爽| 草逼动态图| 国产精品久久久久亚州靑青碰| 淫阁| 痉挛失禁大喷水高潮痉挛| 黄 片 成 人 片 免费| 白丝女班长被调教到奶水直流| 竹菊影视午夜A片| 98精品久久久亂倫| 变态拳头交视频一区二区| 强行开了它的菊玩它的屁股| 亚洲Va欧美va国产综合剧情| 美女扒开逼| 人妻97精品无码一区| 韩城市| 做爰爽全过程免费的看| 青青青免费视频观看在线| 边摸边吃奶边做很爽视频网站| 高h公妇借种李娇娇| 91在线无码精品秘?在线观看| 美女扒开尿口给男生捅| 九色最新网址| 热久久免费视频| 成人无码18??在线观看| 色偷偷888| 两个人完整bd高清视频免费| jizzjizzjizz亚洲护士| 啊好爽用力| 亚洲精品久久久久国产| 韩国19禁gif福利动态图| 爽?好大?快?深点最| 成全的免费视频高清观看| 欧美啪啪小视频| 尹人成人|