补充:

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. Java---设计模块(单例的变形)(多例)

    设计模式1--单例变形(多例) ★ 缓存在单例中的使用 缓存在编程中使用很频繁,有着非常重要的作用,它能够帮助程序实现以空间换取时间,通常被设计成整个应用程序所共享的一个空间,现要求实现一个用缓存存放 ...

  2. 关于C/C++函数指针声明的理解

    [前言] 由于最近对函数指针的理解比较模糊,所有又重新学习了一把关于函数指针的知识,参考了很多书籍和网上的文章.现在本人进行一下分享和总结.本文的其实只是整理和总结别人现有的文章,作为备用参考文档. ...

  3. jQuery的基本语法

    index.html代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  4. cURL中的超时设置

    访问HTTP方式很多,可以使用curl, socket, file_get_contents() 等方法. 在访问http时,需要考虑超时的问题. CURL访问HTTP: CURL 是常用的访问HTT ...

  5. Fancybox——学习(1)

    转载:http://www.helloweba.com/view-blog-65.html Fancybox是一款优秀的jquery插件,它能够展示丰富的弹出层效果.前面我们有文章介绍了facybox ...

  6. [原创]# 玩转nginx系列

    首先先上如何彻底删除nginx 看到这个标题的小伙伴都惊呆了,还不知道怎么搞,却叫我怎么卸载.为什么我要这样,其实,Reset也是一种解决问题的方式嘛. 首先执行下卸载命令 sudo apt-get ...

  7. [原创作品]观察者模式在Web App的应用

    (转载请注明:http://zhutty.cnblogs.com, 交流请加群:164858883) 在软件工程中,有一条重要的原则就是:高内聚低耦合.这是评定软件的设计好坏的一个标准.所谓高内聚,指 ...

  8. Mac phpstorm破解版安装(简单,有效)

    如果是公司作为商业用途的,还是希望你能购买正版的,如果是苦逼的穷学生,亦或是我这样的苦逼码农,那就往下看, 之前有个只需要在"License server address"里输入 ...

  9. IOS开发之微博的设计与实现

    // // main.m // Microblog // #import <Foundation/Foundation.h> #import "Person.h" #i ...

  10. license文件生成原理

      byte解密weblogic加密oraclehex 现在很多J2EE应用都采用一个license文件来授权系统的使用,特别是在系统购买的早期,会提供有限制的license文件对系统进行限制,比如试 ...