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(",")) }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。