其他有趣的变化,因此您可以看到Kotlin的强大功能:

通过创建字符串以一次全部写入的快速版本:

File("somefile.txt").writeText(history.entries.joinToString("\n") { "${it.key}, ${it.value}" })

// or just use the toString() method without transform:

File("somefile.txt").writeText(x.entries.joinToString("\n"))

或者假设您可能会执行其他功能,例如过滤器行或仅使用前100条,等等。

File("somefile.txt").printWriter().use { out ->

history.map { "${it.key}, ${it.value}" }

.filter { ... }

.take(100)

.forEach { out.println(it) }

}

或给定一个toFile,允许通过创建扩展功能(类似于上面的toFile版本,但是流内容而不是首先实现一个大字符串),使用对字符串的转换将其写入文件中:

fun Iterable.toFile(output: File, transform: (T)->String = {it.toString()}) {

output.bufferedWriter().use { out ->

this.map(transform).forEach { out.write(it); out.newLine() }

}

}

fun Iterable.toFile(outputFilename: String, transform: (T)->String = {it.toString()}) {

this.toFile(File(outputFilename), transform)

}

用作以下任何一项:

history.entries.toFile(File("somefile.txt")) { "${it.key}, ${it.value}" }

history.entries.toFile("somefile.txt") { "${it.key}, ${it.value}" }

或在每个项目上使用默认的toString():

history.entries.toFile(File("somefile.txt"))

history.entries.toFile("somefile.txt")

或者给定一个toFile,通过创建以下扩展功能,允许从Iterable填充它:

fun File.fillWith(things: Iterable, transform: (T)->String = {it.toString()}) {

this.bufferedWriter().use { out ->

things.map(transform).forEach { out.write(it); out.newLine() }

}

}

使用方式:

File("somefile.txt").fillWith(history.entries) { "${it.key}, ${it.value}" }

或在每个项目上使用默认的toString():

File("somefile.txt").fillWith(history.entries)

如果您已经拥有另一个toFile扩展名,则可以重写,让一个扩展名调用另一个扩展名:

fun File.fillWith(things: Iterable, transform: (T)->String = {it.toString()}) {

things.toFile(this, transform)

}

kotlin读取sd卡里的文件_如何在Kotlin中写入文件?相关推荐

  1. kotlin读取sd卡里的文件_Kotlin 读取文件

    Kotlin 读取文件教程显示了如何在 Kotlin 中读取文件. 我们展示了几种在 Kotlin 中读取文件的方法. 在本教程中,我们使用File方法读取文件. 本教程提供了五个示例,这些示例在 K ...

  2. kotlin读取sd卡里的文件_Kotlin Android读写外部存储

    本文概述 Android外部存储空间是我们执行读写操作的存储空间.外部存储器中的文件存储在/ sdcard或/ storage文件夹等中.保存在外部存储器中的文件是可读的, 并且可由用户修改. 在访问 ...

  3. java 检测目录下的文件_如何在Java中检查文件是目录还是文件

    java 检测目录下的文件 java.io.File class contains two methods using which we can find out if the file is a d ...

  4. 如何用python创建文件_如何在python中编辑文件并创建一个新的文件?

    我有一个很大的文本文件(分隔的),就像下面这个小例子:>ENST00000511961.1|ENSG00000013561.13|OTTHUMG00000129660.5|OTTHUMT0000 ...

  5. 读取SD卡里面的BMP文件 显示到TFT上

    读取SD卡里面的BMP文件 显示到TFT上 http://blog.csdn.net/yunxianpiaoyu/article/details/8841755 我刚好最近做了一个BMP565格式的图 ...

  6. 读取sd卡里的jar包

    读取sd卡里的jar包并使用里面的类 button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClic ...

  7. 没有为此文件配置应用程序上下文_如何在macOS中管理文件关联?

    在macOS中,右键单击(或按住Ctrl键单击)文件时出现的"打开方式"上下文菜单提供了指向与该文件类型关联的Mac上安装的所有应用程序的链接. 列表的顶部是macOS的默认应用程 ...

  8. python移动文件中某个内容_如何在Python中移动文件

    如何在Python中移动文件 我查看了Python $ mv ...接口,但无法找到移动文件的方法. 我如何在Python中执行相当于$ mv ...的操作? >>> source_ ...

  9. java文件中获取创建日期_如何在Java中获取文件的上次修改日期

    java文件中获取创建日期 Sometimes we need to get the file last modified date in Java, usually for listeners li ...

最新文章

  1. 适用于任何数据可视化需求的国外10个最佳JavaScript图表库
  2. matlab保存图片如何保证dpi,[转载]matlab 保存高分辨率图像 dpi要在300以上
  3. iframe子页面与父页面元素的访问以及js变量的访问[zhuan]
  4. [转]创建一个JavaScript弹出DIV窗口层的效果
  5. html 中怎样显示enum,JavaScript如何枚举?
  6. H5 71-网易注册界面4
  7. STM32工作笔记0061---通用定时器基本原理
  8. matlab2c使用c++实现matlab函数系列教程-diag函数
  9. 什么样的文章更容易被编辑推荐?
  10. 西门子博图编程:使用S7-1500冗余PLC 建立ModbusTCP通信
  11. 计算机病毒手动查杀,如何手动查杀计算机病毒
  12. Win10 设置 Windows聚焦 变为图片
  13. sublime快捷键(mac版)一览
  14. 前端应届简历应该怎么写?
  15. QLV转MP4格式转换器在线免费的方法有哪些
  16. JEOL:发布新的扫描电子显微镜JSM-IT700HR
  17. 微型计算机的i3或i5一般指的是,英特尔i3、i5、i7分别相当于骁龙哪个层次的处理器?...
  18. 达梦数据库除法保留小数
  19. 15.2 矩阵链乘法
  20. C语言经典100例(5)——输入三个整数x,y,z,请把这三个数由小到大输出。

热门文章

  1. Winform开发框架中工作流模块的动态处理
  2. JavaScript的引入方式
  3. es6=unicode码详解
  4. 一天能学会的计算机技术
  5. C# 根据年、月、周、星期获得日期等
  6. javascript 用函数语句和表达式定义函数的区别详解
  7. POJ-1904-King's Quest(强连通图)
  8. 从生产到分发:AI正在成为“互联网内容平台”的效率神器
  9. 解决小目标检测问题的几个途径
  10. NeurIPS 2020 | 微软亚洲研究院论文摘录之目标检测篇