scala学习笔记之文件IO操作

原创 2016年08月30日 15:07:51

Scala 进行文件写操作,直接用的都是 java中 的 I/O 类 (java.io.File):

1.读取本地磁盘

var source = Source.fromFile("D:\\test.txt","GB2312")
    var lines = source.getLines;     //获得迭代器
    for(line <- lines) println(line)

    var sourceArr = source.getLines().toArray        //读取成一个数组
    var sourceBuffer = source.getLines().toBuffer    //读取成一个缓冲
    val str = source.mkString;          //小文件读取成一个字符串
    for(c <- source){println(c)}      //逐个字符读取

    source.getLines().foreach { line => println(line) }  //scala的写法

    source.close()                    //用完之后需要进行关闭操作

2.从字符串读取

 val sourceFromString = Source.fromString("hello this is scala note")
    println(sourceFromString.mkString("<","-",">"))
    sourceFromString.close()

3.从URL读取,并写入本地磁盘

  val sourceFromUrl = Source.fromURL("http://www.baidu.com","utf-8")
    val urlLines = sourceFromUrl.getLines();
    var print = new PrintWriter("d:\\baidu.html");
    for(line <- urlLines){
      print.println(line)
      print.flush()
    }
    print.close()
    sourceFromUrl.close()





4.读取控制台的输入

  println("how old are you")
    var age = scala.io.StdIn.readInt()       
    var readLine = scala.io.StdIn.readLine() 
    println("your age is "+age)

5.读取二进制文件:scala不能直接读取和写入二进制文件,需要借助于JAVA来进行读取,这种方式还是按照java方式来去写scala,后期scala熟练后再进行更改

 def readAndWriteBinaryFile: Unit = {
        var file = new File("D:\\mycat.wmv")
        val bis = new BufferedInputStream(new FileInputStream(file))
        var byte = new Array[Byte](4096)
        var len = 0
        var outFile = new File("d:\\mycat_copy.wmv")
        var bos = new BufferedOutputStream(new FileOutputStream(outFile))
        while ({ len = bis.read(byte); len != -1 }) { //一定要这么写
            /*
             *  while((len = bis.read(byte)) != -1){   
             * 这么写会出现comparing values of types Unit and Int using `!=' 
             * will always yield true ,并在len = -1出现异常
             */
            bos.write(byte, 0, len);
            bos.flush();
        }
        bos.close()
        bis.close()

  }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

树莓派学习笔记——使用文件IO操作GPIO SysFs方式

本文描述如果通过文件IO sysfs方式控制树莓派 GPIO端口。通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口...

【Python学习笔记】IO编程:操作文件和目录

【根据廖雪峰python教程整理】 如果我们要操作文件、目录,可以在命令行下面输入操作系统提供的各种命令来完成。比如dir、cp等命令。   如果要在Python程序中执行这些目录和...

快学Scala学习笔记及习题解答(9文件和正则)

本文scala使用的版本是2.11.7第九章 文件和正则表达式9.1 文件读取行import scala.io.Sourceval source = Source.fromFile("myfile.t...

【Linux】LDD学习笔记——操作硬件——IO内存

原文出处:http://blog.chinaunix.net/uid-25014876-id-80627.html xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...

Python之学习笔记(IO操作)

文件目录操作 IO操作 文件目录操作# -*- coding: utf-8 -*-import osprint os.name# 获取系统信息 # os.uname() 在windows上不存在# 操...

12. JAVA IO Part 3 (数据操作流、合并流、压缩流、回退流、字符编码) ----- 学习笔记

12.11 数据操作流        12.11.1 DataOutputs

黑马程序员------学习笔记(4)IO流中字符流操作

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 实现类继承、封装、多态三个特性。客户去汽车租赁公司租车 有两种车型(轿车和客车),客户选择哪种汽车然后输入要...

黑马程序员学习笔记之七(Java IO操作)

---------------------- android培训、java培训、期待与您交流! ----------------------   一、文件(File) 构造方法如下: ...
  • BBF15
  • BBF15
  • 2012-03-12 21:40
  • 252

scala学习笔记

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)