欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

scala当中的文件操作和网络请求的实现方法

程序员文章站 2024-02-14 15:09:16
1、读取文件当中每一行的数据 def main(args: array[string]): unit = { //注意文件的编码格式,如果编码格式不对,...

1、读取文件当中每一行的数据

def main(args: array[string]): unit = { 

//注意文件的编码格式,如果编码格式不对,那么读取报错 

val file: bufferedsource = source.fromfile("f:\\files\\file.txt","gbk"); 

 val lines: iterator[string] = file.getlines() 

for(line <- lines){ 

 println(line) 

 } 

//注意关闭文件 

file.close() 

}

如果要将文件内容转数组,直接调用toarray即可

2、读取词法单元和数字

如果想将以某个字符或某个正则表达式分开的字符成组读取,可以这么做:

def main(args: array[string]): unit = { 

 val file: bufferedsource = source.fromfile("f:\\files\\file2.txt","gbk"); 

 val split: array[string] = file.mkstring.split(" ") 

 println(split.mkstring("\t")) 

 file.close() 

}

3、读取网络资源、文件写入、控制台操作

1、读取网络资源

def main(args: array[string]): unit = { 
 val source: bufferedsource = source.fromurl("http://www.baidu.com") 
 val string: string = source.mkstring 

 println(string) 
 source.close() 
}

2、文件写入操作

def main(args: array[string]): unit = { 

 val writer = new printwriter("f:files\\printwriter.txt") 

for(i <- 1 to 100){ 

 writer.println(i) 

 writer.flush() 

 } 

 writer.close() 

}

3、控制台交互操作

def main(args: array[string]): unit = { 

//控制台交互--老api 

 print("请输入内容:") 

val consoleline1 = console.readline() 

 println("刚才输入的内容是:" + consoleline1) 

 

//控制台交互--新api 

 print("请输入内容(新api):") 

 val consoleline2 = stdin.readline() 

 println("刚才输入的内容是:" + consoleline2) 

}

4、scala当中的序列化

@serialversionuid(1l) 
class person extends serializable{ 
 override def tostring = name + "," + age 
 val name = "nick" 
 val age = 20 
} 

object personmain extends app{ 
 override def main(args: array[string]): unit = { 
 
import java.io.{fileoutputstream, fileinputstream, objectoutputstream, objectinputstream} 
 val nick = new person 
 val out = new objectoutputstream(new fileoutputstream("nick.obj")) 
out.writeobject(nick) 
out.close() 
 
val in = new objectinputstream(new fileinputstream("nick.obj")) 
val savenick = in.readobject() 
in.close() 
println(savenick) 
 } 
}

5、scala当中的正则表达式

我们可以通过正则表达式匹配一个句子中所有符合匹配的内容,并输出:

def main(args: array[string]): unit = { 
import scala.util.matching.regex 
 val pattern1 = new regex("(s|s)cala") 
 val pattern2 = "(s|s)cala".r 
 val str = "scala is scalable and cool" 
 println((pattern2 findallin str).mkstring(",")) 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。