大数据技术之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()
}
}