美文网首页
Kotlin I/O 与文件管理(3)字符流

Kotlin I/O 与文件管理(3)字符流

作者: 狼性代码人 | 来源:发表于2019-06-27 08:54 被阅读0次
  • Reader 抽象类
  • Writer 抽象类
  • 案例:文件复制

  想掌握字符流的API,首先要熟悉它的两个抽象类:ReaderWriter,并了解它们有哪些主要的函数。

一、Reader 抽象类

  Reader 是字符输入流的根类,影响着字符输入流的行为,Kotlin 为 Reader 类定义了很多扩展函数和属性,下面是一些主要的扩展函数。
  (1). 返回字符缓冲区输入流:

fun Reader.buffered(
    bufferSize: Int = DEFAULT_BUFFER_SIZE // 缓冲区大小
): BufferedReader

  (2). 从输入流中复制数据到输出流,返回复制的字符数:

fun Reader.copyTo(
    out: Writer, 
    bufferSize: Int = DEFAULT_BUFFER_SIZE
): Long

  (3). 遍历输入流中的每一行数据,对每一行数据进行处理,完成之后关闭流:

fun Reader.forEachLine(action: (String) -> Unit)

  (4). 读取输入流中的数据到一个 List 集合,每一个行数据是一个元素,完成之后关闭流:

fun Reader.readLines(): List<String>

  (5). 读取输入流中的数据到字符串中:

fun Reader.readText(): String

二、Writer 抽象类

  Writer 是字符输出流的根类,影响着字符输出流的行为,Kotlin 为 Writer 类定义了一个扩展函数 bufferedbuffered 函数返回字符缓冲区输出流,其定义如下:

fun Writer.buffered(
    bufferSize: Int = DEFAULT_BUFFER_SIZE
): BufferedWriter

三、案例:文件复制

  实现文件复制,数据源是文件,所以用到文件输入流 FileReader,数据目的地也是文件,所以用到了文件输出流 FileWriter

  FileReaderFileWriter 都属于底层流,在实际开发时为了提高效率可以使用缓冲流 BufferedReaderBufferredWriter

fun main(args: Array<String>?) {
    FileReader("./TestDir/index.html").use { fileReader ->
        FileWriter("./TestDir/subDir/index.html").use { fileWriter ->
            val bufferInput = fileReader.buffered()
            val bufferOutput = fileWriter.buffered()
            bufferInput.copyTo(bufferOutput)
        }
    }
}

相关文章

  • Kotlin I/O 与文件管理(3)字符流

    Reader 抽象类Writer 抽象类案例:文件复制   想掌握字符流的API,首先要熟悉它的两个抽象类:Rea...

  • Kotlin I/O 与文件管理(1)Java I/O 流概述

    Java I/O 流概述Java 流设计理念Java 流类继承层次字节输入流字节输出流字符输入流字符输出流   K...

  • Kotlin I/O 与文件管理(4)文件管理

    File 类扩展函数案例:读取目录文件   在 Kotlin 中如果只是对文件进行操作,可以不直接使用文件流。Ko...

  • Java I/O相关

    I/O类的结构体系 I/O体系包含字节流、字符流、文件流和一个接口Serializable。字节流包含输入流Inp...

  • JAVA IO

    Java的I/O建立与流之上,包括字节流(InputStream/OutputStream)和字符流(Reader...

  • Java I/O流

    文件的读写是java i/o流常用的也是最基础的操作,然而字节流,字符流,InputStream,OutpurSt...

  • Java-I/O流

    总结 I/O流分类 按照操作单元划分,字节I/O系统和字符I/O系统。 按照流的流向分,可以将流分为输入流和输出流...

  • I/O的学习之字符流

    I/O的学习之字符流 今天的学习内容 字符流FileReader 字符流FileWriter 字符流的拷贝 带缓冲...

  • Java I/O流(一)

    学习了Java中的i/o流来读取文件 1.File类的操作文件和目录属性2.字符流字节流讲解3.使用字节流读写文件...

  • 流?I/O操作?阻塞?epoll?

    一、流?I/O操作? 阻塞? (1) 流 可以进行I/O操作的内核对象 文件、管道、套接字…… 流的入口:文件描述...

网友评论

      本文标题:Kotlin I/O 与文件管理(3)字符流

      本文链接:https://www.haomeiwen.com/subject/kvfxcctx.html