相关文章推荐
爱看书的核桃  ·  Scala.js, the Scala ...·  3 月前    · 
爱看书的核桃  ·  alla scala_百度百科·  3 月前    · 
爱看书的核桃  ·  LA ...·  3 月前    · 
//按行读取CSV文件 val csvFile = Source.fromFile("D:\\data\\test.csv") val csvList = csvFile.getLines().toList val title = csvList.max println("title: "+title) val titleArr = title.split(",") for(i <- 1 until csvList.size){ val line = csvList(i) val lineList: Array[String] = line.split(",") for(i <- 0 until lineList.length){ print(titleArr(i)+":" + lineList(i) + " ") println //读取网络文件 var netFile = Source.fromURL("https://www.baidu.com") for(line <- netFile.getLines()){ println(line)

读取xml文件

pom.xml中引入scala-xml工具包

<dependency>
  <groupId>org.scala-lang.modules</groupId>
  <artifactId>scala-xml_2.11</artifactId>
  <version>1.2.0</version>
</dependency>

读取xml文件代码如下

package com.yy.scala
import java.io.{FileInputStream, InputStreamReader}
import scala.xml.XML
object XmlApp extends App {
  //读取XML 项目src/main/resources路径下
  val xml1 = XML.load(this.getClass.getClassLoader.getResource("test.xml"))
  println(xml1)
  //读取XML 绝对路径
  val xml2 = XML.load(new FileInputStream("D:\\data\\test.xml"))
  print(xml2)
  val xml3 = XML.load(new InputStreamReader(new FileInputStream("D:\\data\\test.xml")))
  print(xml3)
  val xml = XML.load(this.getClass.getClassLoader.getResource("test2.xml"))
  //读取header下的filed
  val headerField = xml \ "header" \ "field"
  println(headerField)
  //读取所有的field
  val fields = xml \\ "field"
  for (field <- fields) {
    println(field)
  //读取header下field的所有name
  //val filedAttributes = (xml \ "header" \ "field").map(_ \ "@name")
  val filedAttributes = (xml \ "header" \ "field" \\ "@name")
  for (filedAttribute <- filedAttributes) {
    println(filedAttribute)
  //读取name=Logon的message
  //val filters = (xml \\ "message").filter(_.attribute("name").exists(_.text.equals("Logon")))
  val filters = (xml \\ "message").filter(x => ((x \ "@name").text).equals("Logon"))
  for (filter <- filters) {
    println(filter)
  //读取header下field的所有name的值,field的值,required的值
  (xml \ "header" \ "field").map(x => (x \ "@name", x.text, x \ "@required")) .foreach(println)

读取Excel文件

这里使用的是poi工具类,在pom.xml中引入

<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi</artifactId>
  <version>4.1.0</version>
</dependency>
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-ooxml</artifactId>
  <version>4.1.0</version>
</dependency>

读取Excel文件代码如下

package com.yy.scala
import java.io.FileInputStream
import org.apache.poi.xssf.usermodel.XSSFWorkbook
 * poi读取Excel
object ExcelApp extends App {
  val filePath = "E:\\data\\test.xlsx"
  val fs = new FileInputStream(filePath)
  val xssfWorkbook: XSSFWorkbook = new XSSFWorkbook(fs)
  for(i <- 0 until xssfWorkbook.getNumberOfSheets){
    //获取表格每一个sheet
    val xssfSheet = xssfWorkbook.getSheetAt(i)
    val titleRow = xssfSheet.getRow(0)
    for(row <- 1 to xssfSheet.getLastRowNum()){
      //获取表格每一行
      val xssfRow = xssfSheet.getRow(row)
      for(i <- 0 until xssfRow.getPhysicalNumberOfCells){
        //获取表格每一行的每一列
        val title = titleRow.getCell(i).toString
        val value = xssfRow.getCell(i).toString
        print(title + ":" +value+" " )
      println

连接MySQL数据库

在pom.xml中引入MySQL驱动包

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.15</version>
</dependency>

连接MySQL读取mysql库user表代码如下

package com.yy.scala
import java.sql.{Connection, DriverManager, ResultSet, Statement}
object MySQLApp extends App {
  val url = "jdbc:mysql://127.0.0.1:3306/mysql?characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai"
  val username = "root"
  val password = "123456"
  var connection: Connection = null
  var statement:Statement = null
  var resultSet:ResultSet = null
  try {
    classOf[com.mysql.cj.jdbc.Driver]
    //获取连接
    connection = DriverManager.getConnection(url, username, password)
    statement = connection.createStatement()
    resultSet = statement.executeQuery("select host, user from user")
    while (resultSet.next()) {
      val host = resultSet.getString("host")
      val user = resultSet.getString("user")
      println(s"host:$host, user:$user")
  } catch {
    case e: Exception => println(e)
  } finally {
    // 释放资源
    if(resultSet != null){
      resultSet.close()
    if(statement != null){
      statement.close()
    if(connection != null){
      connection.close()