`

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程序设计(第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化与函数的...

    实验七:Spark初级编程实践

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

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

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

    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 库相关操作 ...

    java8stream源码-hello-scala:你好-scala

    每个变量都是一个对象,每个操作符都是一个方法。 它也是一种函数式编程(FP)语言,因此函数也是变量,我们可以将它们传递给其他函数。 我们可以使用 OOP、FP 或以混合风格组合它们来编写我们的代码。 它有一个复杂...

    java猜数字游戏源码-lambdaconf-2014-introgame:使用Scala进行函数式游戏编程简介研讨会的在线材料

    您应该能够使用scala进程从命令行运行此文件。 介绍 欢迎使用 Scala 进行函数式游戏编程简介! 您将通过编写一个有趣的小游戏来学习纯函数式编程。 游戏是现存最有状态的应用程序之一! 事实上,许多游戏是真正成熟...

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

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

    基于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...

    scala-cheatsheet:http的源代码

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

    Hadoop原理与技术Spark操作实验

    1. 理解Spark编程思想; 2. 学会在Spark Shell中编写Scala程序; 3. 学会在Spark Shell中运行Scala程序。 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 三、实验内容 (一)Spark...

    基于Java的Pndao框架:自动化MyBatis SQL语句生成工具源码

    - Ensime配置文件:3个,提供Scala IDE支持。 - SQL脚本:2个,包含示例SQL语句。 - .gitignore文件:1个,用于Git版本控制忽略配置。 - LICENSE文件:1个,项目许可协议。 - README.md文件:1个,项目说明文档...

    sbt-nix.g8:开始使用Scala中的Nix

    然后按照生成的项目目录内的README文件中的说明进行操作。 动机 在2020年9月对Twitter进行民意测验后,我开始用示例编写本指南。 结果是不言而喻的,但我有责任改变当前的状况,因为我相信Nix和函数式编程是前进...

    常用的 IntelliJ IDEA 插件

    IntelliJ IDEA 是一个功能强大的 Java 集成开发环境,支持包括 Java、Kotlin、Groovy、Scala 等多种编程语言。以下是一些常用的 IntelliJ IDEA 插件: 1. CodeGlance:在右侧显示代码缩微图以及当前视口在代码中的...

    百度地图开发java源码-CodeToUML:分析Java/Scala代码并生成UML为txt、png、svg格式

    支持2种编程语言:Java,Scala。 支持两种UML图: (1)类图(命令行和GUI都支持,对被分析的代码无要求,非侵入性,无需要求编译) (2)时序图(暂不提供GUI,只能用命令行方式,需要侵入被分析代码,需要特殊编译...

    Spark 2.0.2 Spark 2.2 中文文档 本资源为网页,不是PDF

    使用 Java / Scala 运行 spark Jobs 单元测试 Spark 1.0 版本前的应用程序迁移 下一步 Spark Streaming Spark Streaming 概述 一个简单的示例 基本概念 依赖 初始化 StreamingContext Discretized ...

    Gaudi:平台无关的构建工具(主要)用 Scala 编写,它在 Java 虚拟机 (JVM) 上运行

    但不同之处在于: 它的构建文件基于格式而不是 XML 格式。 它不是专门为特定编程语言提供高级功能的,不像 Ant 是高度专门用于 Java 开发的。 此外,Gaudi 通过用或编程语言编写的插件支持附加功能。 Gaudi 的实现...

    积分java源码-MusicalNumbers:音乐数字-寻找宇宙中最具音乐性的数字。:musical_notes::input_numbers:

    所以编译出来的结果是一个jar文件,和Java代码一样。 函数式编程真的很美。 你应该试试!! sbt(用于构建 Scala 程序) 苹果系统: 在 MacOS 上安装所有东西(忽略 Spark 部分): Scala 在 Java 虚拟机 (JVM) 上...

Global site tag (gtag.js) - Google Analytics