Scala学习——操作外部数据

scala操作外部数据

一、scala读取文件及网络数据

package top.ruandb.scala.Course08
import scala.io.Source

object FileApp {
  def main(args: Array[String]): Unit = {
    val FILEPATH = "D:\\test\\a.txt"
    val URL = "https://www.baidu.com"
    readLine(FILEPATH)
    readChar(FILEPATH)
    readNet(URL)
  }
  //按行读取文件
  def  readLine(path:String): Unit ={
    //通过Source类分fromFile方法读取文件
    val file = Source.fromFile("D:\\test\\a.txt")(scala.io.Codec.UTF8)
    for(line <- file.getLines()){
      println(line)
    }
  }
  //按char读取文件
  def readChar(path:String): Unit ={
    val file = Source.fromFile("D:\\test\\a.txt")(scala.io.Codec.UTF8)
    for(ele <- file){
      print(ele)
    }
  }
  //读取网络数据
  def readNet(url:String): Unit ={
    val file = Source.fromURL(url)(scala.io.Codec.UTF8)
    for(line <- file.getLines()){
      println(line)
    }
  }
}

二、scala读取mysql数据

package top.ruandb.scala.Course08
import java.sql.{Connection, DriverManager, ResultSet, Statement}
object MysqlApp {
  def main(args: Array[String]): Unit = {
    val url = "jdbc:mysql://192.168.44.181:3306/db_test"
    val username = "root"
    val password = "root"

    var connection:Connection = null
    var statement:Statement = null
    var resultSet:ResultSet = null
    try{
      classOf[com.mysql.jdbc.Driver]
      //获取连接
      connection = DriverManager.getConnection(url,username,password);
      statement = connection.createStatement();
      resultSet = statement.executeQuery(" select name,author ,price, publisher from book ")
      while(resultSet.next()){
        val name = resultSet.getString("name")
        val author =resultSet.getString("author")
        val price = resultSet.getString("price")
        val publisher = resultSet.getString("publisher")
        println(s"${name}  ${author}  ${price}  ${publisher}")
      }
    }catch {
      case e:Exception => println(e.printStackTrace())
    }finally {
      if(resultSet != null){
        resultSet.close()
      }
      if(statement != null){
        statement.close()
      }
      if(resultSet != null){
        resultSet.close()
      }
    }
  }
}

三、scala读取xml文件

package top.ruandb.scala.Course08
import java.io.FileInputStream
import scala.xml.XML

object XMLApp {

  def main(args: Array[String]): Unit = {
//    loadXml()
    readXmlAttr()
  }

  //读取完整的XML文件
  def loadXml(): Unit ={
    //通拓scala.xml.XML读取
//    val xml = XML.load(this.getClass.getClassLoader.getResource("test.xml"))
//    println(xml)
    val xml = XML.load(new FileInputStream("D:\\IdeaProjects\\scala02\\src\\test.xml"))
    println(xml)
  }

  //读取XML属性文件
  def readXmlAttr(): Unit ={
    val xml = XML.load(new FileInputStream("D:\\IdeaProjects\\scala02\\src\\test.xml"))
    //读取 header 下的 filed
    val headerFiled = xml \ "header" \ "field"
    println(headerFiled)//<field required="Y" name="a1">AAA</field><field required="Y" name="a2">BBB</field>

    //找所有的field
    val fields = xml \\ "field"
    for(field <- fields){
      println(field)
    }

    //找header 下 field 的所有name
    //val headerFieldNames = (xml \ "header" \ "field" ).map(_ \ "@name")
    val headerFieldNames = xml \ "header" \ "field" \\"@name" //两种都可以
    for(name <- headerFieldNames){
      println(name)
    }

    //找到name=ma1的message
    val mes = (xml \\ "message").filter(x => (x\ "@name").text.equals("ma1"))
    for(me <- mes){
      println(me)
    }
  }
}

原文地址:https://www.cnblogs.com/jnba/p/10677632.html

时间: 2024-08-02 21:58:42

Scala学习——操作外部数据的相关文章

Scala操作外部数据

Scala操作外部数据: 1.操作文件 2.操作XML 3.操作MySQL 读取文件: object FileApp { def main(args: Array[String]): Unit = { //system file val file = Source.fromFile("Users/rocky/imooc/hello.txt") (scala.io.Codec.UTF8) def readLine(): Unit = { for(line <- file.getLi

快速入门Python中文件读写IO是如何来操作外部数据的?

读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件). 读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符 >>> f =

Scala学习(三)----数组相关操作

数组相关操作 摘要: 本篇主要学习如何在Scala中操作数组.Java和C++程序员通常会选用数组或近似的结构(比如数组列表或向量)来收集一组元素.在Scala中,我们的选择更多,不过现在我们先假定不关心其他选择,而只是想马上开始用数组.本篇的要点包括: 1. 若长度固定则使用Array,若长度可能有变化则使用ArrayBuffer 2. 提供初始值时不要使用new 3. 用()来访问元素 4. 用for (elem<-arr)来遍历元素 5. 用for (elem<-arr if…)…yie

Windows phone 8 学习笔记(2) 数据文件操作(转)

Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方.本节主要讲解它们的用法以及相关限制性.另外包括本地数据库的使用方式. 快速导航:一.分析各类数据文件存储方式二.安装文件夹三.本地文件夹(独立存储空间)四.媒体库操作五.本地数据库 一.分析各类数据文件存储方式 1)安装文件夹 安装文件夹即应用安装以后的磁盘根文件夹,它提供只读的访问权限.它在手机中对应的路径为" C:\Data\Programs\{XXXXXXX

MySQL学习——操作表里的数据

MySQL学习——操作表里的数据 摘要:本文主要学习了使用DML语句操作表里数据的方法. 插入数据 语法 通过传入数据插入: 1 insert into 表名 [(列名1, …, 列名n)] values (值1, …, 值n); 通过查询数据插入: 1 insert into 表名 [(列1, ..., 列n)] 2 select 列1, ..., 列n from 查询的表; 实例 1 mysql> insert into score values (null, '张三', '计算机', 98

Django学习手册 - ORM 数据表操作

queryset 数据类型介绍 QuerySet与惰性机制 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它并不会马上执行sql,而是当调用QuerySet的时候才执行. QuerySet特点: <1>  可迭代的 <2>  可切片 <3>  惰性计算和缓存机制 例: info=models.table_name.objects.all()[0:5] #切片 info= models.table

Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈与熟练的掌握Scala语言【大数据Spark

Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈 大数据的概念与应用,正随着智能手机.平板电脑的快速流行而日渐普及,大数据中图的并行化处理一直是一个非常热门的话题.图计算正在被广泛地应用于社交网络.电子商务,地图等领域.对于图计算的两个核心问题:图存储模式和图计算模型,Spark GraphX给出了近乎完美的答案, 而Spark GraphX作为图计算领域的屠龙宝刀,对Pregel  API的支持更是让Spark GraphX如虎添翼.Spark GraphX可以轻而易举的完成基于度分布

云计算需要学什么课程?新手小白如何学习云计算大数据

如今,大数据的发展趋势正在迅速转变,但专家预计机器学习.预测分析.物联网.边缘计算将在未来几年对大数据项目产生重大影响.新手小白如何学习云计算大数据呢? 如今大数据已不再只是一个流行术语.调研机构Forrester公司的研究人员发现,在2016年,将近40%的企业正在实施和扩展大数据技术的应用,另外30%的企业计划在未来一年内采用大数据.同样,来自NewVantage Partners的"2016年大数据执行调查"发现,62.5%的企业现在至少有一个大数据项目投入使用,只有5.4%的企

新手如何学习云计算大数据,云计算的学习路线

如今云计算火的一塌糊涂,不管你是男生还是女生就业前景摆在那里,只要你有技术有能力,前景不可限量,所以,不要担心就业前景的问题,要担心就担心你自己的能力问题.只有你真正的掌握了技术,才能有更好的就业发展. 云计算是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源.甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸.预测气候变化和市场发展趋势.用户通过电脑.笔记本.手机等方式接入数据中心,按自己的需求进行运算. 如今,大数