版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
文件操作讀取行讀取文件中的所有行,可以調(diào)用scala.io.Source對象的getLines方法:importscala.io.Source
valsource=Source.fromFile("d:\\data.txt","UTF-8")val
lineIteractor=
source.getLinesfor(i<-
lineIteractor)println(i)source.close()更簡潔的寫法:Source.fromFile("d:\\bb.txt").foreach{
print}讀取字符要從文件中讀取單個(gè)字符,可以直接把Source對象當(dāng)做迭代器,因?yàn)镾ource類擴(kuò)展自Iterator[Char]:valsource=Source.fromFile("d:\\data.txt","UTF-8")
for(c<-source){
println(c)
}讀取詞法單元或數(shù)字通過split方法對轉(zhuǎn)化成行的文件內(nèi)容進(jìn)行劃分,讀取源文件中所有以空格隔開的詞法單元:valtokens=source.mkString.split(“\\s+”)通過toInt或toDouble方法把字符轉(zhuǎn)化成整數(shù)或浮點(diǎn)數(shù)。valnum=for(w<-tokens)yieldw.toDouble從控制臺讀取數(shù)字readInt()readDouble()readLong()從URL或其他源讀取從URL讀取數(shù)據(jù)valsource1=Source.fromURL("")從給定的字符串讀取數(shù)據(jù)valsource2=Source.fromString("Hello,world!")從標(biāo)準(zhǔn)輸入讀取valsource3=Source.stdin讀取二進(jìn)制文件scala并沒有提供讀取二進(jìn)制文件的方法,需要使用java類庫valin=newFileInputStream("D:\\data.txt")
vari=in.read
while(i!=-1){
System.out.print(i.toChar)
i=in.read
}
in.close()從控制臺上讀取用戶輸入objectTest{defmain(args:Array[String]){print("請輸入:")valline=Console.readLine
println("謝謝,你輸入的是:"+line)}}寫入文本文件Scala沒有內(nèi)建的對寫入文件的支持,要寫入文件,可使用java.io.PrintWriter.val
out=newPrintWriter("d:\\numbers.txt")
for(i<-1to100)
out.println(i)
out.close()訪問目錄遍歷某目錄下所有的子目錄
def
main(args:Array[String]):Unit={
for(d<-subDir(newFile("G:\\視頻\\")))
println(d)
}
def
subDir(dir:File):Iterator[File]={
val
children=dir.listFiles().filter(_.isDirectory())
children.toIterator++children.toIterator.flatMap(subDir
_)
}訪問目錄下的文件遍歷某目錄下所有的文件和子文件def
main(args:Array[String]):Unit={
for(d<-subDir(newFile("G:\\視頻\\")))
println(d)
}
def
subDir(dir:File):Iterator[File]={
val
dirs=dir.listFiles().filter(_.isDirectory())
val
files=dir.listFiles().filter(_.isFile())
files.toIterator++dirs.toIterator.flatMap(subDir
_)
}正則表達(dá)式當(dāng)在處理輸入的時(shí)候,經(jīng)常會想要用正則表達(dá)式來分析它。scala.util.matching.Regex類讓這件事情變得簡單。要構(gòu)造一個(gè)Regex對象,用String類的r方法即可:val
numPattern="[0-9]+".rfindAllln方法返回遍歷所有匹配項(xiàng)的迭代器for(matchString<-numPattern.findAllIn("99bottles,98bottles"))valmatches=numPattern.findAllln(“99bottles,98bottles”).toArray //將迭代器轉(zhuǎn)成數(shù)組
正則表達(dá)式組分組可以讓我們方便地獲取正則表達(dá)式的子表達(dá)式,在想要提取的子表達(dá)式兩側(cè)加上圓括號。valnumitemPattern="([0-9]+)([a-z]+)".r要匹配組,可以把正則表達(dá)式對象當(dāng)做"提取器"使用val
numitemPattern(num,item)="99bottles"從多個(gè)匹配項(xiàng)中提取分組內(nèi)容for(numitemPattern(num,item)<-numitemPattern
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年紅色歡慶-開工儀式策劃
- 2026年房地產(chǎn)成交中的談判策略
- 2025年高職電子信息工程技術(shù)(電子信息應(yīng)用)試題及答案
- 2025年高職第三學(xué)年(數(shù)字媒體技術(shù))動畫制作基礎(chǔ)測試題及答案
- 2025年大學(xué)工商管理(運(yùn)營管理)試題及答案
- 2025年中職水產(chǎn)養(yǎng)殖技術(shù)(水產(chǎn)動物營養(yǎng)與飼料)試題及答案
- 2025年高職第一學(xué)年(護(hù)理學(xué))兒科護(hù)理期末測試試題及答案
- 2025年中職(農(nóng)資營銷與服務(wù))農(nóng)資推廣階段測試題及答案
- 2025年大學(xué)中藥學(xué)(中藥炮制工程)試題及答案
- 2026年按摩推拿教學(xué)(推拿應(yīng)用)試題及答案
- 2026年陜西省森林資源管理局局屬企業(yè)公開招聘工作人員備考題庫及參考答案詳解1套
- 承包團(tuán)建燒烤合同范本
- 電力線通信技術(shù)
- 人工流產(chǎn)手術(shù)知情同意書
- 2025秋人教版七年級全一冊信息科技期末測試卷(三套)
- 教師三筆字培訓(xùn)課件
- 鋼鐵燒結(jié)機(jī)脫硫脫硝施工方案
- 中國醫(yī)藥行業(yè)中間體出口全景分析:破解政策難題深挖全球紅利
- 搶工補(bǔ)償協(xié)議書
- 山東省青島市城陽區(qū)2024-2025學(xué)年九年級上學(xué)期語文期末試卷(含答案)
- 孕婦尿液捐獻(xiàn)協(xié)議書
評論
0/150
提交評論