Scala第十二章节(Source读取数据的功能、写入数据的功能以及学员成绩表案例)

本文介绍了如何使用Scala的Source类进行文件读写操作,包括按行、按字符、词法单元和数字读取,以及序列化和反序列化。还给出了一个学员成绩表案例,展示了如何根据成绩进行排序并写入新文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

章节目标

  1. 掌握Source读取数据的功能
  2. 掌握写入数据的功能
  3. 掌握学员成绩表案例

1. 读取数据

在Scala语言的 Source单例对象中 中, 提供了一些非常便捷的方法, 从而使开发者可以快速的从指定数据源(文本文 件, URL地址等)中获取数据, 在使用 Source单例对象 之前, 需要先导包, 即 **import scala.io.Source . **

1.1 按行读取

我们可以以 为单位, 来读取数据源中的数据, 返回值是一个 迭代器类型的对象 . 然后通过toArray,toList方法,将这些数据放到数组或者列表中即可.

注意: Source类扩展自Iterator[Char]

格式
//1. 获取数据源文件对象.
val source:BufferedSource = Source.fromFile("数据源文件的路径","编码表")
//2. 以行为单位读取数据.
val lines:Iterator[String] = source.getLines()
//3. 将读取到的数据封装到列表中.
val list1:List[String] = lines.toList
//4. 千万别忘记关闭Source对象.
source.close()
需求
  1. 在当前项目下创建data文件夹, 并在其中创建1.txt文本文件, 文件内容如下:
好好学习, 天天向上!
Hadoop, Zookeeper, Flume, Spark
Flink, Sqoop, HBase
选择黑马, 成就你一生的梦想
  1. 以行为单位读取该文本文件中的数据, 并打印结果.
参考代码
import scala.io.Source
//案例: 演示读取行
object ClassDemo01 {
   
def main(args: Array[String]): Unit = {
   
//1. 获取数据源对象.
val source = Source.fromFile("./data/1.txt")
//2.通过getLines()方法, 逐行获取文件中的数据.
var lines: Iterator[String] = source.getLines()
//3. 将获取到的每一条数据都封装到列表中.
val list1 = lines.toList
//4. 打印结果
for(s <- list1) println(s)
//5. 记得关闭source对象.
source.close()
}
}

1.2 按字符读取

Scala还提供了 **以字符为单位读取数据 **这种方式, 这种用法类似于迭代器, 读取数据之后, 我们可以通过 **hasNext(), next()**方法 , 灵活的获取数据.

格式
//1. 获取数据源文件对象.
val source:BufferedSource = Source.fromFile("数据源文件的路径","编码表")
//2. 以字符为单位读取数据.
val iter:BufferedIterator[Char] = source.buffered
//3. 将读取到的数据封装到列表中.
while(iter.hasNext) {
   
print(iter.next())
}
//4. 千万别忘记关闭Source对象.
source.close()

注意:

如果文件不是很大, 我们可以直接把它读取到一个字符串中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值