日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scala 中的文件操作

發布時間:2024/1/23 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scala 中的文件操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.寫入文件

1.FileWriter

專門用于處理文件的字符寫入流對象

import java.io.FileWriter println(Try{val out = new FileWriter("/home/hadoop3/file/num1.txt",true) for (i <- 0 to 15)out.write(i.toString)out.close() })

new FileWriter("/home/hadoop3/file/num1.txt",true)如果文件不存在,則會新建文件,true是在文件末尾追加寫入,默認為false,從文件開頭重新寫,如果之前有內容,則會刪除原有內容。

2.RandomAccessFile

該對象特點:

1,該對象只能操作文件,所以構造函數接收兩種類型的參數。

  • a.字符串路徑。

  • b.File對象。

2,該對象既可以對文件進行讀取,也可以寫入。

在進行對象實例化時,必須要指定的該對象的操作模式,r rw等。

注意;該對象在實例化時,如果要操作的文件不存在,會自動建立。

如果要操作的文件存在,則不會建立。

如果存在的文件有數據,那么在沒有指定指針位置的情況下,寫入數據,會將文件開頭的數據覆蓋。

import java.io.RandomAccessFile val randomFile = new RandomAccessFile("/home/hadoop3/file/num.txt","rw") val fileLength = randomFile.length; //得到文件長度randomFile.seek(fileLength);//指針指向文件末尾 for(i<- 'a' to 'g') randomFile.writeBytes(i.toString);//寫入數據 randomFile.close();

2.讀文件

1.讀取行

import scala.io.Source val source = Source.fromFile("myfile.txt", "UTF-8") // 第一個參數可以是字符串或java.io.File //如果你知道文件使用的是當前平臺缺省的字符編碼,則可以略去第二個字符編碼參數 val lineIterator = source.getLines for(L <- lineIterator) 處理 L//或者也可以對迭代器應用toArray或toBuffer方法,將這些行放到數組或數組緩沖中 val lines = source.getLines.toArray val contents = source.mkStringsource.close() //記得調用close

2.讀取字符

import scala.io.Source val source = Source.fromFile("myfile.txt", "UTF-8") for (c <- source) 處理 c//想查看某個字符但又不處理它的話,可以調用source對象的buffered方法 val source = Source.fromFile("myfile.txt", "UTF-8") val iter = source.buffered while (iter.hasNext){if(iter.head 是符合預期的)處理 iter.nextelse ... } source.close()

3.讀取詞法單元和數字

val tokens = source.mkString.split("\\s+")val numbers = for(w <- tokens) yield w.toDouble //或者 val numbers = tokens.map(_.toDouble)

4.讀取二進制文件

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

3.從URL或其他源讀取

val source1 = Source.fromURL("http://horstamnn.com","UTF-8") val source2 = Source.fromString("Hello, World!")//從給定的字符串讀取——對調試很有用val source3 = Source.stdin//從標準輸入讀取

總結

以上是生活随笔為你收集整理的Scala 中的文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。