scala 读取txt文件的方法示例
作者:张乐1993 时间:2022-09-30 19:21:10
文件格式分别如下
package txt
object ReadTxt {
def readFromTxtByLine(filePath:String) = {
//导入Scala的IO包
import scala.io.Source
//以指定的UTF-8字符集读取文件,第一个参数可以是字符串或者是java.io.File
val source = Source.fromFile(filePath, "UTF-8")
//或取文件中所有行
//val lineIterator = source.getLines()
//迭代打印所有行
//lineIterator.foreach()
//将所有行放到数组中
val lines = source.getLines().toArray
source.close()
//println(lines.size)
lines
}
def LackingFileUtil(array:Array[String],keyMap:Map[String,String]) = {
// 使用for循环和until遍历Array / ArrayBuffer
// 使until是RichInt提供的函数
var lockMapList = List[Map[String,String]]()
for (i <- 0 until array.length){
if(i==0){
val lineArray = array(i).trim.split("\\|")
lockMapList = lockMapList :+ Map("id"->lineArray(0).trim,"name"->lineArray(1).trim,"pass"->lineArray(2).trim)
}else{
val lineArray = array(i).split(",")
if(lineArray.length==3){
lockMapList = lockMapList :+ Map("id"->lineArray(0).trim,"name"->lineArray(1).trim,"pass"->lineArray(2).trim)
}else if(lineArray.length==2){
val pass = keyMap.getOrElse(lineArray(0).trim,lineArray(1).trim)
lockMapList = lockMapList :+ Map("id"->lineArray(0).trim,"name"->lineArray(1).trim,"pass"->pass.trim)
}else if(lineArray.length==1){
lockMapList = lockMapList :+ Map("id"->lineArray(0).trim,"name"->"","pass"->"")
}else{
lockMapList = lockMapList :+ Map("id"->"-","name"->"","pass"->"")
}
}
//println(array(i))
}
lockMapList
// 跳跃遍历Array / ArrayBuffer
/*for(i <- 0 until (array.length, 2))
println(array(i))*/
// 从尾部遍历Array / ArrayBuffer
/*for(i <- (0 until array.length).reverse)
println(array(i))*/
// 使用“增强for循环”遍历Array / ArrayBuffer
/*for (e <- array){
println(e)
e.split(",").mkString
}*/
}
def KeyFileUtil(array:Array[String]) = {
var keyMapList = Map[String, String]()
for (i <- 0 until array.length) {
//println(array(i))
val lineArray = array(i).trim.split(",")
//println(lineArray.size)
if(lineArray.size==2){
keyMapList = keyMapList ++ Map(lineArray(0).trim -> lineArray(1).trim)
}else if(lineArray.size==1){
keyMapList = keyMapList ++ Map(lineArray(0).trim -> "")
}else{
keyMapList = keyMapList ++ Map("-" -> "")
}
}
keyMapList
}
def isEmpty(s: String): Boolean = (s == null) || (s.size==0)
}
package txt
import scala.reflect.io.File
object App {
def main(args: Array[String]): Unit = {
val key = ReadTxt.readFromTxtByLine("D:"+File.separator+"workspace"+File.separator+"source.txt")
//println(key.mkString)
val keyMap = ReadTxt.KeyFileUtil(key)
//println(keyMap)
val lack = ReadTxt.readFromTxtByLine("D:"+File.separator+"workspace"+File.separator+"source1.txt")
val lockMapList = ReadTxt.LackingFileUtil(lack,keyMap)
println(lockMapList)
}
}
来源:https://blog.csdn.net/qq_29777207/article/details/81873511
标签:scala,读取,txt
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java8时间api之LocalDate/LocalDateTime的用法详解
2023-11-10 16:14:43
微信小程序微信登录的实现方法详解(JAVA后台)
2023-08-29 12:37:25
![](https://img.aspxhome.com/file/2023/0/58370_0s.jpg)
Java链表中元素删除的实现方法详解【只删除一个元素情况】
2023-01-16 11:49:41
![](https://img.aspxhome.com/file/2023/3/68693_0s.png)
浅谈Mybatis获取参数值的方式
2022-09-22 07:56:21
![](https://img.aspxhome.com/file/2023/0/65770_0s.jpg)
Java编程实现帕斯卡三角形代码示例
2023-11-02 08:08:24
![](https://img.aspxhome.com/file/2023/3/58303_0s.gif)
Spring Boot2.0中SpringWebContext找不到无法使用的解决方法
2023-05-26 02:37:01
![](https://img.aspxhome.com/file/2023/1/72661_0s.jpg)
JAVA读取文件夹大小的几种方法实例
2021-05-24 21:01:53
SpringBoot 如何从配置文件读取值到对象中
2023-10-13 15:43:15
![](https://img.aspxhome.com/file/2023/3/58533_0s.png)
MyBatis环境资源配置实现代码详解
2023-08-05 08:59:02
详解C#获取特定进程CPU和内存使用率
2022-06-23 03:06:42
JDK集合源码之解析TreeMap(一)
2021-08-09 07:14:02
![](https://img.aspxhome.com/file/2023/3/66643_0s.png)
简单讲解Android开发中触摸和点击事件的相关编程方法
2023-03-30 12:29:10
SpringMVC底层执行流程及原理解析
2022-11-19 03:34:56
![](https://img.aspxhome.com/file/2023/5/62355_0s.png)
springboottest测试依赖和使用方式
2021-11-21 13:41:38
![](https://img.aspxhome.com/file/2023/7/74757_0s.png)
Logback日志基础及自定义配置代码实例
2022-09-04 01:01:41
mybatis foreach 循环 list(map)实例
2023-11-23 23:39:05
![](https://img.aspxhome.com/file/2023/6/58876_0s.jpg)
学习Java九大内置对象
2023-10-13 01:10:10
Java并发编程ThreadLocalRandom类详解
2021-07-30 17:56:03
java如何将一个float型数的整数部分和小数分别输出显示
2022-08-17 16:50:26
Android 如何实现动态申请权限
2023-07-30 00:51:31