2020-12-22

package com.example.myapplication

import org.junit.Test

import org.junit.Assert.*
import java.io.File

/**
 * Example local unit test, which will execute on the development machine (host).
 *
 * See [testing documentation](http://d.android.com/tools/testing).
 */
class ExampleUnitTest {

    @Test
    fun addition_isCorrect() {
        assertEquals(4, 2 + 2)
    }

    @Test
    fun readText() {

        val filename = """D:\Document\WorkRelated\2020\11\09\tmp.txt"""
        val file = File(filename)
        val contents = file.readText()
        println(contents)

        file.readLines().take(3).forEach {
            println(it.toUpperCase())
        }

        file.forEachLine(action = ::println)

        val bytes: ByteArray = file.readBytes()
        println(bytes.joinToString(separator = ""))

        val reader = file.reader()
        val inputStream = file.inputStream()
        val bufferedReader = file.bufferedReader()

    }

    @Test
    fun writeFile() {

        val currentDir = """D:\Document\WorkRelated\2020\11\09"""
        val file = File(currentDir, "out.txt")

        if (file.exists()) {
            file.createNewFile()
        }

        val writer = file.bufferedWriter()
        writer.append("ddd")
        writer.close()

    }

    @Test
    fun traverseFileTree() {
        val dir = File("""D:\Document\Audio\2020\2020.08.15""")
        val fileTree = dir.walk()
        fileTree.maxDepth(1)
                .filter { it.isFile }
//            .filter { it.extension == "mp3" }
                .forEach {
//                println()
//                println(it.name)
//                println(it.nameWithoutExtension)
//                println(it.parent + "\\" + it.nameWithoutExtension + ".mp3")
                    it.renameTo(File(it.parent + "\\" + it.nameWithoutExtension + ".mp3"))
                }
    }

    @Test
    fun regex() {
        val source = """ddfdf<p class="reader-word-layer reader-word-s1-3 reader-word-s1-4" style="width: 1339px; height: 222px; line-height: 222px; top: 1332px; left: 1764px; z-index: 2; font-weight: 600; letter-spacing: 0.33px;">墙面一般抹灰</p>ddd<pddd>ddd</p>3434"""
        val pattern = """.*?<p.*?>(.*?)</p>.*?"""

        Regex(pattern)
                .findAll(source)
                .toList()
                .flatMap(MatchResult::groupValues)
                .forEach(::println)

    }

    @Test
    fun crack() {

        val filename = """D:\Document\WorkRelated\2020\11\09\tmp.txt"""
        val file = File(filename)
        val bufferedReader = file.bufferedReader(Charsets.UTF_8)
        val stringBuilder = StringBuilder("")
        bufferedReader.lines()
                .forEach {
                    stringBuilder.append(it)
                }

        val source = stringBuilder.toString()
        println(source)

        val pattern = """.*?<p.*?>(.*?)</p>.*?"""

        val currentDir = """D:\Document\WorkRelated\2020\11\09"""
        val newFile = File(currentDir, "out.txt")

        if (newFile.exists()) {
            newFile.createNewFile()
        }

        val writer = newFile.bufferedWriter()

        Regex(pattern)
                .findAll(source)
                .toList()
                .flatMap(MatchResult::groupValues)
                .filter {
                    !it.contains("</p>")
                }
                .forEach {
                    println(it)
                    writer.append(it)
                }

        writer.close()

    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值