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)