Kotlin - IO

1. 常用函数

实际上是对 Java.io.File 的扩展

函数描述
File(path).readTextx():String读取文件中的所有字符串
File(path).readLines():List<String>读取文件中的所有行,存入到集合当中返回
File(Path).readBytes():ByteArray读取文件的ByteArray
File(Path).writeText(text:String)覆盖写入内容,如果文件不存在则会创建新的
File(Path).writeByte(array:ByteArray)覆盖写入ByteArray字节流数组
File(Path).appendText(text:String)追加写入内容
File(Path).exists判断文件是否存在
  1. 遍历文件树 (walk)
fun getFileTree(path: String) {

    val fileTree = File(path).walk()   // .filter() 来过滤
    fileTree.iterator().forEach { println(it.absolutePath) }
}

2.正则使用

1.构造函数

var re=Regex("[a-z]+")
//var re=Regex("[a-z]+",RegexOption.IGNORE_CASE)

2.常用方法

方法介绍
matches(input:CharSequence):Boolean是否匹配整个表达式
containsMatchIn(input:CharSequence):Boolean是否匹配字符串中某部分
replace(input:CharSequence,replacement:String):String将input中所有满足匹配的部分替换为replacement并返回结果
find(input:CharSequence) :MatchResult?返回字符串中第一个匹配值,通过MatchResult.value 获取匹配值
findAll(input:CharSequene):Sequence <MatchResult>返回字串中所有匹配结果的MatchResult序列

3.简单使用

3.1 replace

var str="abc123123abc"
var re=Regex("[a-z]+")
var rt=re.replace(str,{it.value.toUpperCase()})
println(rt)
//Result : ABC123123ABBC

3.2 findAll

var str="abc123123abc"
var re=Regex("[a-z]+")
var rt=re.findAll(str)
rt.forEach { println(it.value) }
//Result: abc  abc

其他:

  1. 爬虫 403 错误解决
    var url=URL(path).openConnection()
    url.addRequestProperty("User-Agent","Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) Gecko/20090803")
   var result=BufferedReader(InputStreamReader(url.getInputStream())).readText()
Last modification:January 14th, 2020 at 07:17 pm