Scala学习笔记--文件IO
补充:
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的更多相关文章
- Java学习笔记--文件IO
简介 对于任何程序设计语言,输入和输出(Input\Output)都是系统非常核心的功能,程序运行需要数据,而数据的获取往往需要跟外部系统进行通信,外部系统可能是文件.数据库.其他程序.网络.IO设备 ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- 《python基础教程(第二版)》学习笔记 文件和素材(第11章)
<python基础教程(第二版)>学习笔记 文件和素材(第11章) 打开文件:open(filename[,mode[,buffering]]) mode是读写文件的模式f=open(r' ...
- Scala学习笔记及与Java不同之处总结-从Java开发者角度
Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...
- 【大数据】Scala学习笔记
第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java 以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...
- Scala学习笔记之:tuple、array、Map
[TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...
- 机器学习(三)--- scala学习笔记
Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...
- java学习笔记之IO编程—内存流、管道流、随机流
1.内存操作流 之前学习的IO操作输入和输出都是从文件中来的,当然,也可以将输入和输出的位置设置在内存上,这就需要用到内存操作流,java提供两类内存操作流 字节内存操作流:ByteArrayOutp ...
- [Python学习笔记]文件的读取写入
文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...
随机推荐
- JDBC连接mysql,TOMCAT错误: Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP
解决思路依据如下URL: http://blog.csdn.net/stail111/article/details/5640109 问题:MySQL数据库,如果数据库中日期字段为空为值为'0000- ...
- Codeforces 23E Tree
http://codeforces.com/problemset/problem/23/E 题意:给一个树,求砍断某些边,使得所有联通块大小的乘积最大.思路:f[i][j]代表当前把j个贡献给i的父亲 ...
- C51系列RAM寄存器表
特殊功能寄存器地址表 SFR 符号 字节 地址 位地址和位名称 D7 D6 D5 D4 D3 D2 D1 D0 P0口 P0 80H P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0. ...
- 普通的101键盘在Mac上的键位对应
为了方便,搞了一个普通的101有线全键盘 + Magic TrackPad配Macbook. 然后发现了一个小问题,按键对应似乎不像我想的那么完美,F1~F12和Macbook不对应,于 ...
- COJ 0024 N皇后问题
N皇后问题 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 在N*N的方格棋盘放置N个皇,使得它们不相互攻击(即任意2个 ...
- cf509A Maximum in Table
A. Maximum in Table time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Javascript的模块化编程
随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂. 网页越来越像桌面程序,需要一个团队分工协作.进度管理.单元测试等等......开发者 ...
- 【自学iOS攻略】了解有什么新技术的途径
1.了解有什么新技术1> 苹果API文档 - General - Guides - iOSx API Diffs2> 观看WWDC会议视频 2.如何使用新技术1> 自己根据API文档 ...
- Mac Dock 效果及原理(勾股定理)
这个是苹果机上的 Dock 效果,Windows 上也有一款专门的模拟软件——RocketDock. 代码如下: <!doctype html> <html> <head ...
- 初学者使用IntellJ IDEA建立Struts2项目
1.建立项目,打开IDEA,点击File——>new project,选择Java Module,点击Next 选中Web Application,Version选中3.0,选中create w ...