【Scala】学习笔记六——读取外部数据

1.读取文件及网络数据
object ReadFileApp extends App {
  val file=scala.io.Source.fromFile("E:\\data\\hello.txt")				//读取指定文件

  //一行一行读取文件
  def readLine: Unit ={
    for(line<-file.getLines()){
      println(line)
    }
  }

  //一个字符一个字符的读
  def readChar: Unit ={
    for(ele<-file){
      println(ele)
    }
  }
 
  //读取网络上的内容
  def readNetwork: Unit ={
    val file=scala.io.Source.fromURL("http://www.baidu.com")
    for(line<-file.getLines()){
      println(line)
    }
  }
  
  readLine
  readChar
  readNetwork

  //读取接口,自己还要看一下
}
2.读取MySQL数据

首先,需要添加MySQL依赖

<!--引入mysql的依赖-->
   <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.45</version>
   </dependency>

然后,连接数据库读取内容,很像java中jdbc

import java.sql.{Connection, DriverManager}

object MySQLApp {
  def main(args: Array[String]): Unit = {
    val url="jdbc:mysql://localhost:3306/mysql"
    val user="root"
    val password="600619"

    var connection:Connection=null;
    try {
      classOf[com.mysql.jdbc.Driver]      //分布式时需要用到这一句
      connection=DriverManager.getConnection(url,user,password)
      val statement=connection.createStatement();
      val resultSet=statement.executeQuery("select host,user from user;")		//user这张表是mysql自带的一张表
      while(resultSet.next()){
        val host=resultSet.getString("host")
        val user=resultSet.getString("user")
        println(s"$host $user")
      }
    }catch{
      case e:Exception=>println("Error...")
    }finally{
      if(connection==null){
        connection.close()
      }
    }

  }
}
3.读取XML文件

(1)获取: 下面三种方式都可以读取到xml文件,xml文件放在了main下的resource文件夹中

  def loadXML: Unit ={
    val xml=XML.load(this.getClass.getClassLoader.getResource("src/main/resource/test.xml"))
    println(xml)
  }

  def loadXML: Unit ={
    val xml=XML.load(new FileInputStream("C:\\Users\\PYN\\IdeaProjects\\scalatrain\\src\\main\\resource\\test.xml"))
    println(xml)
  }
  
  def loadXML: Unit ={
    val xml=XML.load(new InputStreamReader(new FileInputStream("C:\\Users\\PYN\\IdeaProjects\\scalatrain\\src\\main\\resource\\test.xml")))
    println(xml)
  }

(2)读取其中的内容:

//读header下的field
    val field=xml\"header"\"field"
    println(field)

    //读取所有field
    val fields=xml \\ "field"
    for(field<-fields)
      println(field)

    //读取header下的field中的name属性
    val names=(xml\"header"\"field"\\"@name")
    for(name<-names)
      println(name)

    //读取name="c" 的value
    val value=(xml\\"value").filter(_.attribute("name").exists(_.text.equals("c")))
    println(value)

    //获取header下的field
    (xml\"header"\"field").map(x=>(x\"@name",x.text,x\"@age")).foreach(println)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值