欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

使用Scala怎么實(shí)現(xiàn)文件讀寫操作

本篇文章為大家展示了使用Scala怎么實(shí)現(xiàn)文件讀寫操作,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)主營青川網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,青川h5小程序制作搭建,青川網(wǎng)站營銷推廣歡迎青川等地區(qū)企業(yè)咨詢

讀取行

// 讀取文件所有的行,可以調(diào)用scala.io.Source對象的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ù)組緩沖行中,若想將讀取的的文件作為一個字符串,只需val conents = source.mkString

下面是簡單的代碼實(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對象,第一個參數(shù)是文件的路徑,第二個文件的編碼格式
  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對象,第一個參數(shù)是文件的路徑,第二個文件的編碼格式
 var source: BufferedSource = null
 try {
  source = Source.fromFile(resource, code)
  source.mkString
 } finally {
  source.close()
 }
 }
}

讀取字符

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

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

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

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

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

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

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

Scala并沒有提供讀取二進(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()

寫入文本文件

Scala沒有內(nèi)建對寫入文件的支持,可借助java進(jìn)行文件寫入操作例如使用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 {
 
}

正則表達(dá)式

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

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

上述內(nèi)容就是使用Scala怎么實(shí)現(xiàn)文件讀寫操作,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:使用Scala怎么實(shí)現(xiàn)文件讀寫操作
URL分享:http://aaarwkj.com/article8/igijip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)企業(yè)建站、用戶體驗、自適應(yīng)網(wǎng)站網(wǎng)站維護(hù)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
成人黄色片久久久大全| 白浆视频在线免费观看| 国产麻豆91在线视频| 免费av在线观看日韩| 亚洲一区二区三区 日韩精品| 中文字幕精品免费日韩在线| 最新日韩av一区二区| 亚洲欧美日韩1区2区| 亚洲三级伦理在线视频| 日韩欧美黄色三级视频| 99精品国产高清一区二区三区 | 久久国产综合精品电影| 91精品午夜在线观看| 欧洲精品久久久久久| 少妇人妻系列中文在线| 天堂av一区二区在线播放| 在线播放国产91精品| 人妻中文字幕精品系列| 欧美日韩综合在线第一页| 成年视频免费观看视频| 国产b片免费在线观看| 国产精品美女丝袜久久久| 中文字幕欧美人妻在线| 日本久久高清免费观看| 中文字幕国产精品综合一区| 99热这里只有精品网址| 视频免费观看网站不卡| 91久久精品国产一区| 精品毛片久久久久久久久| 日本av在线中文一区二区| 亚洲国产日韩一区二区在线| 日本97久久久久久精品| 欧美激情中文字幕日韩精品| 91精品人妻二区三区| 一区三区精品久久久精品| 国产原创av剧情在线播放| 日韩熟女av中文字幕| 最新日韩欧美一区二区| 欧美生活一区二区三区| 精品国产av色一区二区| 91精品蜜臀国产综合久久久久久|