`

Scala编程之文件操作

阅读更多

一、简述

       Scala语言的名称来自于“可伸展的语言”。之所以这样命名,是因为他被设计成随着使用者的需求而成长。用Scala语言编写应用程序可以有很大的范围:小到写脚本,大到建立大系统。

       Scala是很容易进入的语言,它跑在标准的Java平台上,可以与所有的Java库实现无缝交互。它也是用来编写脚本把Java控件链在一起的很好的语言,但是用它来建立大系统和可重用控件的架构将更能够发挥它的力量。从技术层面上来说, Scala是一种把面向对象和函数式编程理念加入到静态类型语言中的混血儿, Scala的许多不同的方面都展现了面向对象和函数式编程的熔合;或许它比其他那些广泛使用的语言更有渗透性。在可伸展性方面,这两种编程风格具有互补的力量,Scala的函数式编程使得它便于快速地从简单的碎片开始建立一些有趣的东西。它的面向对象特性又使它便于构造大型系统并使它们适应于新的需求。Scala中这两种风格的组合使得它有可能表达新的编程模式和控件抽象。并产生了易读、简洁的编程风格。

 

二、实例展示

       利用Scala语言编写一个小程序:从文件中遍历内容并输出这些内容。

 

import scala.io.Source
class BaseOptDemo {
   def fileOpt() : Unit = {
       val files = paramConver()
       if(files.length > 0){
         val lines = Source.fromFile(files.apply(0)).getLines().toList
         val longestLine = lines.reduceLeft(
           (a,b) => if(a.length > b.length) a else b
         )
         val maxLength = widthOfLength(longestLine)
         for(line <- lines){
           val numSpaces = maxLength - widthOfLength(line)
           val padding = " " * numSpaces
           print(padding + line.length + " | " + line)
         }
       }else {
         Console.err.println("Please Enter filename")
       }
   }
   private def paramConver() : Array[String] = {
      val files = new Array[String](2)
      files(0) = "D:/scala/file_1.txt"
      files(1) = "D:/scala/file_2.txt"
      return files
   }
   private def widthOfLength(s:String) = s.length.toString.length
}

 

三、编写测试用例

object BaseOpt extends App{
    new BaseOptDemo().fileOpt()
}

 

四、测试结果

10 | AAAAAAAAAA10 | BBBBBBBBBB10 | CCCCCCCCCC10 | DDDDDDDDDD10 | EEEEEEEEEE

 

 

分享到:
评论

相关推荐

    Scala的概念和安装

    除了Scala编程语言自身的特性以外,目前比较流行的Spark计算框架也是使用Scala语言编写。Spark 和 Scala 能够紧密集成,例如 使用Scala语言操作大数据集合的时候,用户可以像是在操作本地数据集那样简单操作Spark上...

    基于Java和Scala的Spark基础教程配套源码

    本项目是一个基于Java和Scala语言开发的Spark基础教程配套源码,包含55个文件,主要文件类型包括Java源代码、Scala源代码、XML配置文件、日志文件、Git忽略文件、LICENSE文件和Idea配置文件。系统设计旨在为学习...

    scala-advanced:Scala先进

    练习题-Scala函数式编程 函数式编程思想进阶 × scala-谜题 巩固基础 × scalatest 类库 类库扩展 × scala-json 操作(json4s) 类库扩展 √ shapeless 泛型编程库 类库扩展 × scala-app-cats cats 库相关操作 ...

    基于Scala的Spark学习仓库设计源码

    本源码项目是基于Scala的Spark学习仓库设计,包含282个文件,主要使用Scala编程语言。该项目是一个Spark学习仓库,旨在帮助开发者学习和实践Spark技术。系统提供了丰富的学习资源,包括Spark的示例代码、文档和教程...

    基于Scala和Java的Spark Binlog数据源设计源码

    本源码项目是基于Scala和Java的Spark Binlog数据源设计,包含56个文件,主要使用Scala、Java和Shell编程语言。该项目是一个支持HBase/MySQL Binlog的Spark structured streaming数据源。通过该项目,开发者可以学习...

    scala-cheatsheet:http的源代码

    来自Scala教程源代码介绍Scala编程语言正在Swift普及! 遗憾的是,大多数在线教程都没有提供分步指南:( 在 ,我们提供给帮助你学习Scala小,操作简单,简单的步骤,一个初学者的教程。 教程的组织方式使您可以逐步...

    实验七:Spark初级编程实践

    1、实验环境: ...(1) 在spark-shell中读取Linux系统本地文件“/home/hadoop/test.txt”,然后统计出文件的行数; 图3 spark统计行数 (2) 在spark-shell中读取HDFS系统文件“/user/hadoop/test.txt”

    Scala程序设计(第2版)

    6.2 Scala中的函数式编程 151 6.2.1 匿名函数、Lambda与闭包 152 6.2.2 内部与外部的纯粹性 154 6.3 递归 154 6.4 尾部调用和尾部调用优化 155 6.5 偏应用函数与偏函数 157 6.6 Curry化与函数的...

    基于Scala的Apache Spark大数据处理设计源码

    本源码项目是基于Scala的Apache Spark大数据处理设计,包含13640个文件,主要使用Scala、Java、Python、Shell、JavaScript、CSS、HTML、Ruby和C编程语言。该项目是一个统一的大数据分析引擎,用于大规模数据处理。...

    scala-fmi-2021

    使用Scala进行高级功能编程 讲课 [] Scala工具 scala , scalac ,REPL sbt,配置,编译,启动和测试 添加库 类型和文字 定义val , var , def , type ,函数。 类型推断 文件和包 值作为对象(带有方法) if...

Global site tag (gtag.js) - Google Analytics