补充:

http://blog.csdn.net/lyrebing/article/details/20369445

http://developer.51cto.com/art/200907/134957.htm

http://nerd-is.in/2013-08/scala-learning-files-and-regular-expressions/

读取行

//读取文件中的所有行,可以调用scala.io.Source对象的getLines方法
object LineIO{
def main(args:Array[String]):Unit = {
val source = Source.fromFile("F:\\way.txt","UTF-8")
//第一个参数可以是字符串或者是java.io.File
//第二个参数可省略
val lineIterator =source.getLines
//结果是一个迭代器 for(l<-lineIterator)
println(l)
//或者可以对迭代器应用toArray或toBuffer方法,将行放到数组或数组缓冲当中
val lines = source.getLines.toArray
//将整个文件读取成一个字符串
//val contents = source.mkString;
source.close
}
}

读取字符(一个一个字符处理)

//按字符处理
object CharIO{
def main(args:Array[String]):Unit={
val source =Source.fromFile("F:\\way.txt","UTF-8")
val iter= source.buffered
//println(iter.length)
while(iter.hasNext){
print(iter.next.toString)
}
source.close
}
}

读取词法单元和数字

object NumIO{
def main(args:Array[String]):Unit={
val source = Source.fromFile("F:\\num.txt","UTF-8")
val tockens = source.mkString.split(" ")
for(w<-tockens){
println(w.toInt)
}
//另一种方法
val numbers = for(w<-tockens)
yield w.toDouble
for(num<-numbers){
println(num)
} //另一种方法
val numbers2 = tockens.map(_.toDouble)
}
}

 从URL或其他源读取

//读取非文件源的方法
object URLIO{
def main(args:Array[String]):Unit={
//从URL读取
val source= Source.fromURL("http://www.baidu.com","UTF-8")
val lineIterator =source.getLines
for(l<-lineIterator){
println(l.toString())
} //从给定的字符串读取--调试有用
val source2= Source.fromString("Hello world") //从标准输入读取
val source3 = Source.stdin
}
}

运行结果为网址的html

读取二进制文件

Scala没有提供读取二进制文件的方法,需要使用Java类库

object URLIO{
def main(args:Array[String]):Unit={
val file = new File("F:\\info.bin")
val in = new FileInputStream(file)
val bytes = new Array[Byte](file.length.toInt)
in.read(bytes)
in.close
}
}

写入文本文件

object WriteIO{
def main(args:Array[String]):Unit={
val out = new PrintWriter("F:\\numbers.txt")
for(i<-1 to 100)
out.println(i)
out.close
}
}

 

Scala学习笔记--文件IO的更多相关文章

  1. Java学习笔记--文件IO

    简介 对于任何程序设计语言,输入和输出(Input\Output)都是系统非常核心的功能,程序运行需要数据,而数据的获取往往需要跟外部系统进行通信,外部系统可能是文件.数据库.其他程序.网络.IO设备 ...

  2. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  3. 《python基础教程(第二版)》学习笔记 文件和素材(第11章)

    <python基础教程(第二版)>学习笔记 文件和素材(第11章) 打开文件:open(filename[,mode[,buffering]]) mode是读写文件的模式f=open(r' ...

  4. Scala学习笔记及与Java不同之处总结-从Java开发者角度

    Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...

  5. 【大数据】Scala学习笔记

    第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...

  6. Scala学习笔记之:tuple、array、Map

    [TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...

  7. 机器学习(三)--- scala学习笔记

    Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...

  8. java学习笔记之IO编程—内存流、管道流、随机流

    1.内存操作流 之前学习的IO操作输入和输出都是从文件中来的,当然,也可以将输入和输出的位置设置在内存上,这就需要用到内存操作流,java提供两类内存操作流 字节内存操作流:ByteArrayOutp ...

  9. [Python学习笔记]文件的读取写入

    文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...

随机推荐

  1. Linux下如何发布Qt程序

    在X11平台下qt程序,首先准备好程序中需要使用的资源,库和插件...    比如你的可运行程序取名叫作panel,那把你的panel,那些libQt*.so.4和libQt*.so.4.6.0(链接 ...

  2. ChangeServiceConfig2 function

    ChangeServiceConfig2 function   Changes the optional configuration parameters of a service. Syntax C ...

  3. js一些通用方法的封装

    //封装StringBuilder function StringBuilder() { this._string_ = new Array(); } StringBuilder.prototype. ...

  4. zabbix流量汇聚

    "服务器流量汇总"领导提需求,要把几个数据中心的数据汇总起来,于是就google了一下"zabbix流量汇总" 按照其中一篇博客做了出来,博客地址如下. htt ...

  5. HybridApp开发准备工作——WebView

    如大家所见,手机真是越来越离不开我们的日常生活了,像我,现在出门必带的是手机.移动电源.公交卡:钱包什么的再也没出过门.两年前,我还在Android的应用开发中当了一次过客.嗯,当时JAVA学得太糟糕 ...

  6. TO DO NOW——送给奋斗着的程序“猿”们

    大家在我们的日常生活中是不是经常会遇到学习和工作效率低,不能够按照自己的计划有条不紊地按时.按点儿的完成自己的任务呢?是不是还在为此而头疼不堪呢?好吧, 那是你执行力有问题.那么究竟什么是执行力?怎样 ...

  7. sgu Flow construction

    Flow construction 题目: 给出N个节点M条水管,要求在满足上下界的情况下.满足起点最小的流量. 算法: 这是最小流????不知道.仅仅知道用求解上下界最大流的方法就过了. 做这题收获 ...

  8. struts2讲义----二

    Struts的namespace 示例工程Struts2_0200_Namespace Struts.xml <struts> <constant name="struts ...

  9. 函数返回char* 的解决方案

    在C语言中,自动变量在堆栈中分配内存.当包含自动变量的函数或代码块退出时,它们所占用的内存便被回收,它们的内容肯定会被下一个所调用的函数覆盖.这一切取决于堆栈中先前的自动变量位于何处,活动函数声明了什 ...

  10. 使用Ksoap2调用Web Service加入SoapHeader

    关于这个问题,如果使用百度都是前篇一律的代码,好不容易上了google才找到完整的方法,这里讲所有的代码都贴出来与大家分享. 首先是.NET写的后台代码 /// <summary> /// ...