scala当中的文件操作和网络请求的实现方法
1、读取文件当中每一行的数据
defmain(args:Array[String]):Unit={
//注意文件的编码格式,如果编码格式不对,那么读取报错
valfile:BufferedSource=Source.fromFile("F:\\files\\file.txt","GBK");
vallines:Iterator[String]=file.getLines()
for(line<-lines){
println(line)
}
//注意关闭文件
file.close()
}
如果要将文件内容转数组,直接调用toArray即可
2、读取词法单元和数字
如果想将以某个字符或某个正则表达式分开的字符成组读取,可以这么做:
defmain(args:Array[String]):Unit={
valfile:BufferedSource=Source.fromFile("F:\\files\\file2.txt","GBK");
valsplit:Array[String]=file.mkString.split("")
println(split.mkString("\t"))
file.close()
}
3、读取网络资源、文件写入、控制台操作
1、读取网络资源
defmain(args:Array[String]):Unit={
valsource:BufferedSource=Source.fromURL("http://www.baidu.com")
valstring:String=source.mkString
println(string)
source.close()
}
2、文件写入操作
defmain(args:Array[String]):Unit={
valwriter=newPrintWriter("F:files\\printWriter.txt")
for(i<-1to100){
writer.println(i)
writer.flush()
}
writer.close()
}
3、控制台交互操作
defmain(args:Array[String]):Unit={
//控制台交互--老API
print("请输入内容:")
valconsoleLine1=Console.readLine()
println("刚才输入的内容是:"+consoleLine1)
//控制台交互--新API
print("请输入内容(新API):")
valconsoleLine2=StdIn.readLine()
println("刚才输入的内容是:"+consoleLine2)
}
4、scala当中的序列化
@SerialVersionUID(1L)
classPersonextendsSerializable{
overridedeftoString=name+","+age
valname="Nick"
valage=20
}
objectPersonMainextendsApp{
overridedefmain(args:Array[String]):Unit={
importjava.io.{FileOutputStream,FileInputStream,ObjectOutputStream,ObjectInputStream}
valnick=newPerson
valout=newObjectOutputStream(newFileOutputStream("Nick.obj"))
out.writeObject(nick)
out.close()
valin=newObjectInputStream(newFileInputStream("Nick.obj"))
valsaveNick=in.readObject()
in.close()
println(saveNick)
}
}
5、scala当中的正则表达式
我们可以通过正则表达式匹配一个句子中所有符合匹配的内容,并输出:
defmain(args:Array[String]):Unit={
importscala.util.matching.Regex
valpattern1=newRegex("(S|s)cala")
valpattern2="(S|s)cala".r
valstr="Scalaisscalableandcool"
println((pattern2findAllInstr).mkString(","))
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。