//按行读取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()