Scala中I/O类使用详细解析
2019独角兽企业重金招聘Python工程师标准>>>
简介
在Scala中,I/O操作是调用java中的I/O类或者通过对java中的I/O类进行相应的封装来实现的。
``` trait FileLogger extends Logger{
val fileName:String //PrintWriter使用的是java.io.PrintWriter类 val fileOutput=new PrintWriter(fileName:String) fileOutput.println("#")
def log(msg:String):Unit={ fileOutput.print(msg) fileOutput.flush() } } ```
相比于java语言中的I/O类,scala语言中的I/O相关类非常少,而这其中最常用的只有Source这个类。
写文件
Scala进行文件写操作,直接用的都是java中的I/O类。
``` import java.io._
object ScalaFileWriter { def main(args: Array[String]): Unit = { val fileWriter=new FileWriter("file.txt") fileWriter.write("scala file writer") fileWriter.flush() fileWriter.close() } } ```
读文件
scala中读文件可以直接使用java中的I/O类,也可以用scala中的Source对象,该对象对java中的I/O进行了封装,使用更简便更灵活。
``` //读取文件并将文件内容格式化输出 import scala.io._
object ScalaFileReader { def main(args: Array[String]): Unit = { //读取文件 val file=Source.fromFile("D:\scala\doc\api\package.html") //返回Iterator[String] val lines=file.getLines() //打印内容 for(i<- lines) println(i)
//关闭文件 file.close(); } } ```
网络I/O
scala中的网络I/O操作可以通过Source对象中的fromURL方法来实现,也可以使用原生的JAVA网络I/O操作进行。
``` //网络I/O读取百度首页内容 import java.net.{URL, URLEncoder} import scala.io.Source.fromURL
object NetworkIO { def main(args: Array[String]): Unit = { print(fromURL(new URL("http://www.baidu.com")).mkString) } } ```
转载于:https://my.oschina.net/u/3980693/blog/2875308
Scala中I/O类使用详细解析相关推荐
- scala 主构造函数_在Scala中,如何在类的主构造函数中定义局部参数?
在Scala中,如何在不是数据成员的类的主构造函数中定义局部参数,例如,仅用于初始化基类中的数据成员? 例如,在下面的代码中,如何在B类的主构造函数中正确定义参数b,以便它只生成临时本地参数而不是数据 ...
- 森林中的兔子(超详细解析)
森林中的兔子题目题解 题目 解析 题解一 题解二 题目 森林中,每个兔子都有颜色.其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色.我们将这些回答放在 answers 数组里. 返 ...
- 特征匹配中OpenCV Dmatch类的用法解析以及非常详细的ORB特征提取与匹配解析
首先说明一点,在SLAM中进行特征提取和匹配时,需要注意使用的OpenCV版本,在使用OpenCV2.x版本时,可以创建特征对象如下所示(省略了参数表): ORB orb; SURF surf; SI ...
- 学习笔记-----关于VS中使用模板类出现无法解析的外部符号问题
最近再学数据结构,刚接触线性表,用VS2015照着书把linearList的array描述补全了结果运行总提示:无法解析的外部符号 翻了几篇博客发现貌似是和C++编译的机制有关(底层机制不是很懂,(- ...
- c 语言 可变参数前要加形参,C/C++中可变参数的用法详细解析
可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等.可变参数是实现printf(),sprintf()等函数的关键之处, ...
- Python中字符串前u的详细解析,以及字符串前添加'b','r'的简单解释
一.字符串前添加u,例如u'hello 世界你好!' 中文编码问题是用中文的程序员经常头大的问题,在python下也是如此,那么应该怎么理解和解决python的编码问题呢? 我们要知道python内部 ...
- RTP中H264封装NALU格式详细解析
名词解释:NAL NAL的英文全称为Network Abstract Layer,即网络抽象层,在H264/AVC视频编解码标准中,整个系统框架分为两个层面,视频编解码层面(VCL)和网络抽象层面(N ...
- 【无标题】Scala 中的伴生类 - 伴生对象
object TT {def main(args: Array[String]): Unit = {val clerk = new Clerkclerk.showInfo()Clerk.test(cl ...
- scala中的伴生类 伴生对象说明
1.代码如下: [java] view plain copy print ? package com.yy.oop /** * 伴生类和伴生对象 * class Student是伴生对象Object ...
- 安卓手机绘制uml图_Android Studio中绘制simpleUML类图详细说明及使用
一.Android Studio中安装simpleUML 1.下载simpleUML jar包 2. 添加simpleUMLCEjar包 File--->Settings--->Plugi ...
最新文章
- CountDownLatch(线程计数器)
- oracle常见问题
- xtend怎么使用_使用Xtend构建Vaadin UI
- java判断对称素数_SM2非对称算法的原理及实现 Java SM2的代码案例 | 一生孤注掷温柔 | 小奋斗...
- 有传闻说,写好总结可以升职加薪?
- 毛笔日常保养注意事项
- ECshop sina
- android音视频【十】音频mp3剪切
- C语言:编写程序,打开文本文件stu.txt,读出文件内容,将其中的字符‘s’删除,将修改后的内容存到student.txt文件中。
- BaseAdapter的逗逼、普通、文艺写法
- 总结工作中常用到的linux命令大全_经典
- finereport 格式化金额函数_帆软报表常用函数总结
- 推荐10款最佳的App安全测试工具
- android 信号检测工具,信号检测软件下载-Signal Strength 安卓版v23.0.1-PC6安卓网
- 什么是soft matting方法_建筑师学“交互”有什么意义?零基础如何展开?
- 重新安装固态硬盘后,然后再安装系统至固态硬盘,为何开机后仍然不能从固态硬盘启动系统?
- MINE:Mutual Information Neural Estimation
- 如何下载全球范围的谷歌卫星地图数据
- 休闲零食生产企业如何做好供应链管理?
- cocos-lua环境搭建