Scala中I/O類使用詳細解析
阿新 • • 發佈:2018-11-30
簡介
在Scala中,I/O操作是呼叫java中的I/O類或者通過對java中的I/O類進行相應的封裝來實現的。
trait FileLogger extends Logger{val fileName:String //PrintWriter使用的是java.io.PrintWriter類 val fileOutput=new PrintWriter(fileName:String) fileOutput.println("#")def log(msg:String):Unit={ fileOutput.print(msg) fileOutput.flush() } }
相比於java語言中的I/O類,scala語言中的I/O相關類非常少,而這其中最常用的只有Source這個類。寫檔案 Scala進行檔案寫操作,直接用的都是java中的I/O類。
import java.io._object ScalaFileWriter { def main(args: Array[String]): Unit = { val fileWriter=new FileWriter("file.txt") fileWriter.write("scala file writer") fileWriter.flush() fileWriter.close() } }
讀檔案
scala中讀檔案可以直接使用java中的I/O類,也可以用scala中的Source物件,該物件對java中的I/O進行了封裝,使用更簡便更靈活。
//讀取檔案並將檔案內容格式化輸出 import scala.io._object ScalaFileReader { def main(args: Array[String]): Unit = { //讀取檔案 val file=Source.fromFile("D:\scala\doc\api\package.html") //返回Iterator[String] val lines=file.getLines() //列印內容 for(i<- lines) println(i) //關閉檔案 file.close(); } }
網路I/O
scala中的網路I/O操作可以通過Source物件中的fromURL方法來實現,也可以使用原生的JAVA網路I/O操作進行。
//網路I/O讀取百度首頁內容 import java.net.{URL, URLEncoder} import scala.io.Source.fromURLobject NetworkIO { def main(args: Array[String]): Unit = { print(fromURL(new URL("http://www.baidu.com")).mkString) } }
文章來自:https://www.itjmd.com/news/show-4235.html