博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala快学笔记(三)
阅读量:7081 次
发布时间:2019-06-28

本文共 2503 字,大约阅读时间需要 8 分钟。

一 ,文件操作:

1,读取行:val source=Source.fromFile("fileName","utf-8)  形成一个字符串:source.mkString   从网络中读取:val source=Source.fromURL("http://www.baidu.com","utf-8")

2,读取二进制文件,写入文本文件,访问目录都需要引入java.文件处理方法

3,序列化:需要序列化的场景:由于序列化的使用会影响系统的性能,因此如果能不使用就尽量不要使用。(class extends Serializable)

  • 需要通过网络来发送对象,或将对象的状态需要被持久化保存到数据库或文件中

4,反序列化:将流转为对象

import collection.mutable.ArrayBufferimport java.io.{ObjectInputStream,ObjectOutputStream,FileInputStream,FileOutputStream}class Person(var name:String) extends Serializable{    val friends=new ArrayBuffer[Person]()    def addFirend(p:Person):ArrayBuffer[Person]={    friends += p    }    override def toString()={        var str="My name:"+name+"and my firends name is"        friends.foreach(str +=_.name+",")        str    }}object seriTest extends App{    val p=new Person("1")    val f1=new Person("2")    val f2=new Person("3")    p.addFirend(f1)    p.addFirend(f2)    print(p)    val out=new ObjectOutputStream(new FileOutputStream("test.txt"))    out.writeObject(p)    out.close()    val in =new ObjectInputStream(new FileInputStream("test.txt"))    val p1=in.readObject.asInstanceOf[Person]    println(p)}

输入流与输出流:

InputStream(字节输入流)和Reader(字符输入流)通俗的理解都是读(read)的。

OutputStream(字节输出流)和Writer(字符输出流)通俗的理解都是写(writer)的。

 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了

5,正则表达式

几个正则表达式应用题:

//9.6import scala.io.Sourceobject regexTest extends App{    val path="/home/hadoop/people.txt"    val file=Source.fromFile(path)    val pattern="\\w+\\s+\"".r    pattern.findAllIn(file).foreach(println(_))}//9.7 非浮点数object regexTest2 extends App{    val path="/home/hadoop/people.txt"    val file=Source.fromFile(path)    val pattern="""[^((\d+.)?\d+)^\s+] """.r//非浮点数非空格    pattern.findAllIn(file).foreach(println(_))}//9.8  寻找 < img  src="">object regexTest3 extends App{    val path="http://www.hao123.com"    val file=Source.fromURL(path).mkString    val pattern="""
]+(src\s*=\s*"[^>^"]+")[^>]*>""".r for (str <- pattern.findAllIn(file)) println(str)}

 6,特质

   Java:类只能扩展一个超类,它可以实现任意数量的接口,但接口只能有抽象方法,不能包含字段

  为什么接口中的常量必须使用public static final修饰    

  public: 使接口的实现类可以使用这个常量

  static:static修饰就表示它属于类的,随的类的加载而存在的,如果是非static的话,

          就表示属于对象的,只有建立对象时才有它,而接口是不能建立对象的,所以
       接口的常量必须定义为static
  final:final修饰就是保证接口定义的常量不能被实现类去修改,如果没有final的话,
        由子类随意去修改的话,接口建立这个常量就没有意义了。

  特质,不支持多重继承,因为多重继承会产生菱形继承问题,可以理解为一种缺少构造器参数的类,拥有具体或抽象的字段和方法,或超类

转载于:https://www.cnblogs.com/ksWorld/p/7147711.html

你可能感兴趣的文章
大图做帧动画卡顿?不存在的!—— 优化帧动画之SurfaceView 滑动窗口式帧复用...
查看>>
Android 8.0 新特性 之通知、自适应图标
查看>>
57 Insert Interval
查看>>
[译] 2018 PHP 应用程序安全设计指北
查看>>
云计算基础之什么是云计算?
查看>>
10个实用的Django技巧和建议
查看>>
带你学C带你飞!
查看>>
html_03 | HTML——③ HTML 表单详解
查看>>
小猿圈解决vue权限问题的方案
查看>>
Express.js 解析 Post 数据类型的正确姿势
查看>>
关于UI设计行业的认识再到认识
查看>>
String类自带的字符串处理原生方法
查看>>
使用PHP+淘宝IP地址库接口获得IP所属地理位置
查看>>
我的友情链接
查看>>
Nginx白名单设置
查看>>
通过批处理文件使用7zip执行备份;将1日和15日的备份再另外备份;定时清理过期备份...
查看>>
安装 CentOS 时找不到硬盘的解决办法
查看>>
Java中的访问控制public,private,protected,package
查看>>
Foxmail 6.5在Windwos 7下无法编辑签名
查看>>
Putty 连接Centos服务器
查看>>