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()

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

scala io操作

1. 读文件scala特有的是scala.io.Source,例如: import scala.io._ Source.fromFile(“cn.scala”,”utf8”).mkString逐行...
  • pzw_0612
  • pzw_0612
  • 2015年05月31日 12:08
  • 3227

Scala IO ,基本文件读写

package service.spider.fileLocSys import scala.io.Source import java.io.{BufferedWriter, OutputStr...
  • w_j_w2010
  • w_j_w2010
  • 2015年12月11日 14:24
  • 940

Scala的IO流操作

 6.   io 6.1.     文件I/O 6.1.1.  读文件 scala特有的是scala.io.Source,例如: import scala.io._ ...
  • Rocky_wangjialin
  • Rocky_wangjialin
  • 2014年10月16日 12:13
  • 2488

Android开发学习之IO文件读写操作

今天为大家带来的是IO。IO,顾名思义是Input和Output,即输入输出系统,用于完成文件的读写操作。今天我们就来学习在Android中使用Java原生的IO来读写文件。            页...
  • qinyuanpei
  • qinyuanpei
  • 2013年12月01日 10:26
  • 2409

linux系统中的IO操作

同步IO分为阻塞IO、非阻塞IO、信号驱动的IO和多路转接IO。 阻塞IO: 一直阻塞进程直到完成IO操作。 非阻塞IO: 有数据时进行IO操作,没有数据时立即返回不阻塞进程。 信号驱动IO: 当...
  • c1194758555
  • c1194758555
  • 2016年10月22日 19:39
  • 702

Scala学习笔记1 - 基础

本文档针对scala 2.10.x,由于scala目前发展迅速,因此可能会和其他版本的不同。 ===概述          scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函...
  • guohecang
  • guohecang
  • 2016年08月04日 11:47
  • 751

scala中hdfs文件的操作

对于org.apache.hadoop.fs.Path来说, path.getName只是文件名,不包括路径 path.getParent也只是父文件的文件名,同样不包括路径 path.toStrin...
  • ronaldo4511
  • ronaldo4511
  • 2016年11月24日 20:18
  • 6921

scala 文件io和md5实例

package demo import org.apache.commons.codec.digest.DigestUtils /** * Created by Administrator o...
  • earbao
  • earbao
  • 2015年12月18日 18:25
  • 2092

C语言文件IO操作

函数原型: size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );       所在头文件 :  Read blo...
  • ych_ding
  • ych_ding
  • 2014年12月20日 18:42
  • 4678

Linux编程——文件 IO操作

Linux文件 I\O 介绍     1. Linux系统调用     Linux系统调用(system call)是指操作系统提供给用户程序的一组“特殊接口”,用户程序可以通过这组“特殊”接口来获得...
  • baidu_28312631
  • baidu_28312631
  • 2015年08月21日 08:15
  • 1778
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:scala学习笔记之文件IO操作
举报原因:
原因补充:

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