首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Kotlin不打印我从.txt文件中选择的字符串,除非它是最后一行?

Kotlin不打印从.txt文件中选择的字符串,除非它是最后一行的原因可能是由于文件读取的方式不正确或者在读取文件时没有正确处理换行符的问题。

首先,确保你使用了正确的文件读取方式。在Kotlin中,可以使用File类来读取文件内容。首先,需要创建一个File对象,指定要读取的文件路径。然后,可以使用BufferedReader类来逐行读取文件内容。以下是一个示例代码:

代码语言:txt
复制
import java.io.File

fun main() {
    val file = File("path/to/your/file.txt")
    val reader = file.bufferedReader()

    var line: String?
    while (reader.readLine().also { line = it } != null) {
        // 处理每一行的内容,例如打印
        println(line)
    }

    reader.close()
}

其次,如果文件中的字符串只在最后一行打印,可能是因为在读取文件时没有正确处理换行符的问题。在不同的操作系统中,换行符的表示方式可能不同(例如Windows使用"\r\n",Unix使用"\n")。因此,在读取文件时,需要根据实际情况处理换行符。可以使用String的trim()方法来去除字符串两端的空白字符,包括换行符。以下是一个示例代码:

代码语言:txt
复制
import java.io.File

fun main() {
    val file = File("path/to/your/file.txt")
    val reader = file.bufferedReader()

    var line: String?
    while (reader.readLine().also { line = it } != null) {
        // 去除换行符和空白字符
        val trimmedLine = line?.trim()
        // 处理每一行的内容,例如打印
        println(trimmedLine)
    }

    reader.close()
}

以上代码会逐行读取文件内容,并打印每一行的字符串(去除换行符和空白字符)。请将"path/to/your/file.txt"替换为实际的文件路径。

对于Kotlin中的文件读取和字符串处理,可以参考腾讯云的对象存储产品 COS(Cloud Object Storage),该产品提供了文件存储和读取的功能,可以满足云计算中的文件处理需求。具体产品介绍和文档可以参考腾讯云COS的官方网站:腾讯云COS

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何用 awk 删除文件重复行【Programming】

对于文件一行,如果行出现次数为零,则将其增加一并打印该行,否则,它仅增加出现次数而无需打印该行。 对awk并不熟悉,所以我想了解它是如何通过这么短脚本来实现这一点。...做了研究发现以下几点: 输入文件一行都会执行awk“脚本”!visited[$0]++。 visit []是类型为关联数组 (又称为Map )变量。...否则,执行操作,也不打印任何内容。 为什么不使用 uniq 命令? uniq命令仅除去相邻重复行 。...1 abc 2 ghi 4 def 5 xyz 8 klm 最后,cut-f2第二列开始打印到结束(-f2-选项: 注意-后缀,指示其包括其余行)。...abc ghi def xyz klm 参考资料 Gnu awk 用户指南 awk 数组 Awk真值 Awk 表达式 如何在Unix删除文件重复行? 删除重复行而排序 awk '!

8.6K00

linuxsed命令总结

接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件反复操作;编写转换程序等。...r file # file读行。 t label # if分支,最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号命令处,或者到脚本末尾。...2,$d' file 删除文件最后一行: sed '$d' file 删除文件中所有开头是test行: sed '/^test/'d file 已匹配字符串标记& 正则表达式 \w+ 匹配每一个单词,...h命令和G命令 在sed处理文件时候,每一行都被保存在一个叫模式空间临时缓冲区除非行被删除或者输出被取消,否则所有被处理行都将 打印在屏幕上。...#偶数行 方法2: sed -n '1~2p' test.txt #奇数行 sed -n '2~2p' test.txt #偶数行 打印匹配字符串一行 grep -A 1 SCC URFILE

3.2K20

linux下sed正则表达式匹配批量替换文件内容

接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件,简化对文件反复操作,编写转换程序等。...-h --help 显示帮助 -n --quiet --silent 仅显示script处理后结果 -V --version 显示版本信息 命令 命令 说明 d 删除,删除选择行 D 删除模板块一行...q 退出sed b label 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾 r file file读行 t label if分支,最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号命令处...,或者到脚本末尾 T label 错误分支,最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号命令处,或者到脚本末尾 w file 写并追加模板块到file末尾 W file 写并追加模板块一行到...当我们打开文件时,发现并没有改变。这里只是替换缓存区内内容,并不改变文件内容。 开始位置替换,并加上回车 sed 's/^hello/world\n/' hello.txt 执行结果: ?

5.7K10

Sed 命令详解

接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。.../g' -e '3,$s/This/That/g' my.txt; -f script-file 读取 sed 编辑命令,可以将多个编辑命令写在文件,使用sed -f script-file ....s; p: print即打印,该命令会打印当前选择行到屏幕上,通常同-n一起使用,打印选中行; s: 替换,通常s命令用法是这样:s/old/new/g,将old字符串替换成new字符串 多个匹配...本例作用是在第一行之后增加字符串”add one”,输出可以看到具体效果。...G —— 只有第一行执行G命令,将hold space内容append回到pattern space h —— 第一行都执行h命令,将pattern space内容拷贝到hold space

91810

编程短文:Bash echo如何原生输出带空格字符串而不换行

引言 为什么要数量掌握bash编程,因为它是linux下默认工具。任何时候与系统内核对话,我们都直接面对shell。操作系统提供了为数众多便利工具,用于完成复杂操作。...今天我们说一个最为常用输出字符串指令 echo。 为什么说这个最常用指令呢?因为很多人每天都在用。却在使用过程遇到了大大小小许许多多坑而不可避免。今天我们通过一个问题,给出解决方案。...然后我们使用 cat 逐行打印这个文件,在终端执行以下指令: cat coder.txt 输出效果: ? 那么现在有一个需求,假如需要对每行文本做进一步处理,在bash中使用for循环逐行处理。...每行文本中间有空格地方,在打印时候都会另起一行。 有没有什么解决方案呢? 有人说你只需要在变量外层加上双引号,就可以作为一行字符串处理了。事实会是这样吗?我们测试一下。 ?...写在最后 “书读百遍,其义自见”! 多敲打,多参考 man page,可以让基本功逐日增强。 Happy coding :_) 是 @程序员小助手 ,持续分享编程知识,欢迎关注。

4.3K30

【linux命令讲解大全】081.sed:功能强大流式文本编辑器

接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件反复操作;编写转换程序等。...P # (大写) 打印模板块一行。 q # 退出Sed。 b # 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾。 r # file读行。...,$d' file 删除文件最后一行: sed '$d' file 删除文件中所有开头是test行: sed '/^test/'d file 已匹配字符串标记& 正则表达式 \w+ 匹配每一个单词,使用...,每一行都被保存在一个叫模式空间临时缓冲区除非行被删除或者输出被取消,否则所有被处理行都将 打印在屏幕上。...#偶数行 方法2: sed -n '1~2p' test.txt #奇数行 sed -n '2~2p' test.txt #偶数行 打印匹配字符串一行 grep -A 1 SCC URFILE

19110

技能篇:sed教程-linux命令

除非子命令特别指定打印 p 选项,则只会把匹配修改行进行打印 ---- 两行都打印出来 ---- server11:~/test # echo -e 'hello \n world' | sed...) i 插入:i 后面可以接字串,而这些字串会在新一行出现(目前一行) c 取代:c 后面可以接字串,这些字串可以取代 n1,n2 之间行 d 删除:因为是删除啊,所以 d 后面通常接任何东西...p 打印:亦即将某个选择数据印出。...存在分组,{replacement}"\n"代表第n个分组,"&"代表整个匹配字符串。...详情看示例 flags参数如下 flags 描述 n 可以是1-512,表示第n次出现情况进行替换 g 全局更改 p 打印模式空间内容 w file 写入到一个文件file 示例 server11

69720

笨办法学 Python3 第五版(预览)(一)

一旦你把文件保存在lpthw目录,你应该能够在终端输入ls test.txt来查看它是否存在。...从现在开始,除非练习有所不同,否则不会解释每个练习工作原理。 信息 “井号”也被称为“磅”,“井号”,“网格”或任何一种名称。选择让你放松那个。...学习练习 查明你对#字符理解是否正确,并确保你知道它名称(井号或磅字符)。 拿起你代码,倒着检查每一行最后一行开始,逆向检查每个单词是否与你应该输入相符。...像你在练习 1 那样,为每一行代码写一个英文注释是正常吗? ,你只需要为难以理解代码或者为什么要这样做写注释。为什么通常更重要,然后你尝试编写代码以解释某个操作是如何完成。...确保你理解是如何将"""样式多行字符串与{}格式激活器结合在一起作为最后一个打印。 尝试找到在 Jupyter 运行此代码方法。

15410

Sed 命令

1.工作流程sed工作流程主要包括读取、执行和显示三个过程: 读取:sed 输入流 (文件、管道、标准输入)读取一行内容并存储到临时缓冲区(又称模式空间,pattern space)...d:删除,删除选定行a:增加,在当前行下面增加一行指定内容i:插入,在选定行上面插入一行指定内容c:替换,将选定行替换为指定内容y:字符转换,转换前后字符长度必须相同p:打印,如果同时指定行;如果指定行...通常与 -n 选项一起使用=:打印行号l:打印数据流文本和不可打印ASCII字符r:在指定行下面读取文件内容w:将文件内容保存到新文件中二、打印命令演示1.打印文件内容#打印文件a.txt,sed...2种寻址方式:以数字形式表现行区间用文本模式过滤行1.以数字形式过滤行#打印文件一行内容sed -n '1p' a.txtone#打印文件最后一行内容sed -n '$p' a.txttwelve#打印文件...the.conf.file3 #行前后4 sed -i ‘/allow chengyongxu.com/a\allow chengyongxu.cn‘ the.conf.file1.给匹配到文件具体字符串一行插入一行数据

16510

Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件反复操作;编写转换程序等。...c\ 把选定行改为新文本。 d 删除,删除选择行。 D 删除模板块一行。 s 替换指定字符,字符间可用/或@或#隔开 h 拷贝模板块内容到内存缓冲区。...前面可加数字,指定打印第几行 P(大写) 打印模板块一行。 q 退出Sed。 b lable 分支到脚本带有标记地方,如果分支不存在则分支到脚本末尾。 r file file读行。...t label if分支,最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号命令处,或者到脚本末尾。...T label 错误分支,最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号命令处,或者到脚本末尾。 w file 写并追加模板块到file末尾。

9.2K21

Kotlin入门(27)文件读写操作

哪里有痛点,哪里就有优化,所以Kotlin文件API这块也下了一番功夫,它以Javaio库为基础,利用扩展函数,添加了一些常用文件内容读写方法,并且往往是一行代码便搞定功能,绝不拖泥带水。...返回一个字符串List,文件有多少行,队列中就有多少个元素。 readBytes : 读取字节数组形式文件内容。...这几个方法理解起来毫不费力,文件读取全部文本,也只要下面一行代码便成:     //读取文件文本内容     val content = File(file_path).readText() 若想从图片文件读取位图信息...== "txt" } //选择扩展名为txt文本文件             .forEach { fileNames.add(it.name) } //循环处理符合条件文件 注意到以上代码判断文件扩展名使用了...譬如图片文件扩展名既可能是png,也可能是jpg,此时若用传统或语句判断固然可行,但并不雅观,更好办法是利用Kotlinin条件,即判断文件扩展名是否位于扩展名队列,形如“it.extension

3.3K20

一切皆是文件:UNIX,Linux 操作系統設計哲學

Linux 进程就是一个数据结构,看明白就可以理解文件描述符、重定向、管道命令底层工作原理,最后我们操作系统角度看看为什么说线程和进程基本没有区别。...举个例子,以我们角度 C 语言printf函数是向命令行打印字符,但是进程角度来看,就是向files[1]写入数据;同理,scanf函数就是进程试图files[0]这个文件读取数据。...同理,输出重定向就是把files[1]指向一个文件,那么程序输出就不会写入到显示器,而是写入到这个文件: $ command > file.txt ? 错误重定向也是一样,就不再赘述。...那么你可能问,既然进程和线程差不多,而且多进程数据共享,即不存在数据错乱问题,为什么多线程使用比多进程普遍得多呢?...积跬步,无以至千里;积小流,无以成江河。 ? Kotlin 简介 Kotlin是一门非研究性语言,它是一门非常务实工业级编程语言,它使命就是帮助程序员们解决实际工程实践问题。

96730

linux运维命令梳理(三)

d ∶删除,因为是删除啊,所以 d 后面通常接任何咚咚; i ∶插入, i 后面可以接字串,而这些字串会在新一行出现(目前一行); p ∶列印,亦即将某个选择资料印出...input-file(s) 是待处理文件。 在awk文件一行,由域分隔符分开每一项称为一个域。通常,在指名-F域分隔符情况下,默认域分隔符是空格。...文件查找匹配模式行 1.作用 Linux系统grep命令是一种强大文本搜索工具,它能使用正则表达式搜索文本,并把匹 配打印出来。...Grep 命令 用法大全 1、 参数: -I :忽略大小写 -c :打印匹配行数 -l :多个文件查找包含匹配项 -v :查找包含匹配项行 -n:打印包含匹配项行和行标 2、...,是指定数字一行显示;比如指定是6,那就从第7行显示; g 跳到第一行; G 跳到最后一行; p n% 跳到n%,比如 10%,也就是说比整个文件内容10%处开始显示; /pattern

7.9K81

Kotlin安卓开发学习(1)

, 28 5月 2022 作者 847954981@qq.com 后端学习, 编程之路 Kotlin安卓开发学习(1) Kotlin变量与函数 变量: Kotlin变量定义和Java差别很大...需要注意是这里有一个语法糖: 当一个函数只有一行代码时,Kotlin允许我们不必编写函数体,可以直接将唯一一行代码写在函数定义尾部,中间用等号连接即可。...if使用方法与Java几乎相同,但在一些地方进行了优化: Kotlinif语句相比于Java有一个额外功能,它是可以有返回值,返回值就是if语句每一个条件中最后一行代码返回值。...为什么这么说呢?相信你一定知道数组下标都是0开始,一个长度为10数组,它下标区间范围是0到9,因此左闭右开区间在程序设计当中更加常用。...修改main()函数代码,使用until替代..关键字,你就会发现最后一行10不会再打印出来了。

76230

Shell实用工具

示例:更改文件数据 演示1: 将文件一行修改为hello 命令 sed '1chello' sed.txt ?...# 1h 模式空间中将第一行数据复制到暂存空间(覆盖方式) # $G 将暂存空间中内容复制到模式空间中最后一行(追加方式) ?...演示2: 第一行删除后粘贴到最后1行 将模式空间第一行复制到暂存空间(覆盖方式)并删除, 最后将暂存空间内容复制到模式空间中最后一行(追加方式) sed '1{h;d};$G' sed.txt #...演示3: 第一行数据复制粘贴替换其他行数据 将模式空间第一行复制到暂存空间(覆盖方式), 最后将暂存空间内容复制到模式空间中替换第2行开始到最后一行一行数据(覆盖方式) sed '1h;2,$g...' passwd # printf(格式字符串,变量1,变量2,...) # 格式字符串: %ns 输出字符串,n 是数字,指代输出几个字符, n指定自动占长度 # 格式字符串: %ni 输出整数,n

7.8K10

Linux三剑客之grep,awk,sed命令必知必会

示例有一个名为linuxmi文件,如下所示: linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.txt 要在文件输出每个包含“linuxmi...如何在Linux中使用AWK命令 默认情况下,Awk命令用于打印文件内容。在本例,没有指定模式,因此操作应用于文件一行。...)}' 20 Awk脚本 如果发现自己编写了复杂awk命令,则可以选择将它们放在脚本文件(.awk)并从那里运行它们。...linuxmi:~/www.linuxmi.com$ sed -n 's/linuxmi/xxvi/p' linuxmi.txt 一行开始更换,例如,第3行到最后 linuxmi@linuxmi...sed 'd' linuxmi.txt 第n行开始删除到最后,例如,第3行到最后: linuxmi@linuxmi:~/www.linuxmi.com sed '3,d' linuxmi.txt

9.1K20
领券