Scala-Scala语言的面向对象(九)Scala中的文件访问

Posted on 2020-06-05 11:44  MissRong  阅读(229)  评论(0)    收藏  举报

大数据技术之Scala

======第一篇:Scala编程语言=====

Scala语言的面向对象(九)Scala中的文件访问

(了解即可-之后会用Spark完成)

类似于Java IO

举例:

1)读取文件

2)读取二进制文件

3)从URL中获取信息

4)写入文件

5)Scala调用java类库

1.读取行

 

2.读取字符

 

其实这里的source就指向了这个文件中的每个字符。

 3.从URL或其他源读取:注意指定字符集UTF-8 

 

4.读取二进制文件:Scala中并不支持直接读取二进制,但可以通过调用Java的InputStream来进行读入。 

 

5.写入文本文件

Scala代码整体实现:

 

package wenjian
import java.io.PrintWriter

import scala.io.Source._
/**
  * Scala读取文件样例
  */
object ReadAndWriteWenJian {
  def main(args: Array[String]): Unit = {

    //Lazy值-用才初始化,不用就不初始化
    lazy val source = fromFile("D:/order.txt")
    //1.读取文件的所有内容
//    println("----------mkString----------")
//    println(source.mkString)

    //2.按行读取
    //注意:如果想要正常执行下面的代码需要将1注释掉,否则文件读完了再执行就是空值了
//    println("----------getLines----------")
//    val lines=source.getLines()
//    lines.foreach(println)

    //3.读取字符(一个字符一个字符地读取)
//    println("----------for----------")
//    for(s<-source) println(s)

    //4.从URL或其他数据源读取
    //http://www.baidu.com
//    println("----------from URL----------")
//    var source2=fromURL("http://www.baidu.com","UTF-8")
//    println(source2.mkString)

    //5.读取二进制文件-用Java的IO流
//    println("----------read Bytes----------")
//    var file=new File("E:\\Matlab\\R2017b\\toolbox\\javabuilder\\jar\\WebFigureQuickStart.war")
//    //构建InputStream
//    var in=new FileInputStream(file)
//    //构建buffer
//    val buffer=new Array[Byte](file.length().toInt)
//    //读取
//    in.read(buffer)
//    //输出此二进制文件的长度
//    println(buffer.length)
//    //关闭流的连接
//    in.close()

    //6.写入文本文件
    println("----------Write File----------")
    var out=new PrintWriter("D:/scala-writeFile.txt")
    for(i<-0 until 10) out.println(i)
    out.close()
  }
}

 

 

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3