IO流(十八)

简介

  在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.fromURL

object NetworkIO {
  def main(args: Array[String]): Unit = {
    print(fromURL(new URL("http://www.baidu.com")).mkString)
  }
}

忠于技术,热爱分享。欢迎关注公众号:java大数据编程,了解更多技术内容。

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java大数据编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值