Scala中I/O类使用详细解析

在这里插入图片描述
简介
  在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

猜你喜欢

转载自blog.csdn.net/a6984021/article/details/84023314