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

使用Java查找文件中有多少非空行的最快方法是什么?

使用Java查找文件中有多少非空行的最快方法是使用Java 8的Stream API。以下是一个示例代码:

代码语言:java
复制
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;

public class NonEmptyLineCounter {
    public static void main(String[] args) throws IOException {
        String filePath = "path/to/your/file.txt";
        long nonEmptyLineCount = countNonEmptyLines(filePath);
        System.out.println("Number of non-empty lines: " + nonEmptyLineCount);
    }

    private static long countNonEmptyLines(String filePath) throws IOException {
        try (Stream<String> lines = Files.lines(Paths.get(filePath))) {
            return lines.filter(line -> !line.trim().isEmpty()).count();
        }
    }
}

在这个示例中,我们使用了Files.lines()方法从文件中读取每一行,然后使用Stream API的filter()方法过滤掉空行,最后使用count()方法计算非空行的数量。这是一种简单且高效的方法。

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

相关·内容

使用 Python 拆分文本文件最快方法是什么

在 Python 中拆分文本文件可以通过多种方式完成,具体取决于文件大小和所需输出格式。在本文中,我们将讨论使用 Python 拆分文本文件最快方法,同时考虑代码性能和可读性。...拆分() 方法 拆分文本文件最直接方法之一是使用 Python 中内置 split() 函数。基于指定分隔符,此函数将字符串拆分为子字符串列表。...mmap 模块 另一种选择是使用 Python 中 mmap 模块,它允许您对文件进行内存映射,从而为您提供一种有效方法来访问文件,就好像它在内存中一样。...这会将字符串拆分为子字符串列表,其中每个子字符串对应于原始文件中一行。最后,结果存储在变量行中。 结论 总之,使用 Python 拆分文本文件最快方法取决于文件大小。...如果文件很小,可以使用 split() 函数或 readline() 方法。但是,对于大文件,应使用 mmap 模块对文件进行内存映射,从而提供一种快速有效方法来访问文件。

2.6K30

《Linux与unix Shell编程指南》 总结

在按照文件长度查找文件时,一般使用这种以字节表示文件长度,在查看文件系统大小,因为这时使用块来计量更容易转换。...如果系统崩溃或挂起,从最后所显示时间就可以一眼看出系统是什么时间停止工作。...如果没有指定文件,则会使用标准输入。 Number 变量指定将多少单元写入标准输出。 Number 变量值可以是正或负整数。...你可以使用帮助选项(“--help”)看 # 其中有无一个“--text”项以此来判断所使用是否是UnxUtils版本。其它DOS # 版本sed则无法进行这一转换。...d' #方法1,删除文件顶部空行,允许尾部保留一空行 sed '/^$/N;/\n$/D' #方法2,允许顶部保留一空行,尾部不留空行 # 只保留多个相邻空行前两行。

5.5K30
  • Linux 基础命令(收藏大全)

    文档中时间格式来实现时间 -r 文件名 显示文件最后修改日期 -u 显示utc时间(通用时间) 使用date查看过去/将来时间 1....-s 将多个空行合并成一个空行输出 ------------- 命令: more 查看文本文件命令 命令格式: more [选项] 文件名 +行数直接从给定行数开始显示 -s 将多个空行压缩成一个空行...查找文件/目录字节为0文件(即空文件) find / -empty ----------- 命令: grep 功能: 通过正则表达式查找文件关键字 参数: -i:忽略大小写 -c:打印匹配行数...-v:不输出匹配行 -A :显示所找匹配字段,并显示下面指定行数信息 -B :显示所找匹配字段,并显示上面指定行数信息 正则表达式表示方法: 忽略正则表达式中特殊字符原有含义.../cutcmd.txt --------- 命令:sed 功能:通过指定正则表达式完成指定关键字过滤、截取、修改等操作 特点: 1.sed属于一个流线式交互式编辑器 2. sed在输入命令和文件名后

    1.9K40

    Linux 基础命令(收藏大全)

    -r 文件名 显示文件最后修改日期 -u 显示utc时间(通用时间) 使用date查看过去/将来时间 1....s 将多个空行合并成一个空行输出 ------------- 命令: more 查看文本文件命令 命令格式: more [选项] 文件名 +行数直接从给定行数开始显示 -s 将多个空行压缩成一个空行...查找文件/目录字节为0文件(即空文件) find / -empty ----------- 命令: grep 功能: 通过正则表达式查找文件关键字 参数: -i:忽略大小写 -c:打印匹配行数...-v:不输出匹配行 -A :显示所找匹配字段,并显示下面指定行数信息 -B :显示所找匹配字段,并显示上面指定行数信息 正则表达式表示方法: 忽略正则表达式中特殊字符原有含义.../cutcmd.txt --------- 命令:sed 功能:通过指定正则表达式完成指定关键字过滤、截取、修改等操作 特点: 1.sed属于一个流线式交互式编辑器 2. sed在输入命令和文件名后

    1.3K30

    Linux 基础命令(收藏大全)

    -r 文件名 显示文件最后修改日期 -u 显示utc时间(通用时间) 使用date查看过去/将来时间 1....s 将多个空行合并成一个空行输出 ------------- 命令: more 查看文本文件命令 命令格式: more [选项] 文件名 +行数直接从给定行数开始显示 -s 将多个空行压缩成一个空行...查找文件/目录字节为0文件(即空文件) find / -empty ----------- 命令: grep 功能: 通过正则表达式查找文件关键字 参数: -i:忽略大小写 -c:打印匹配行数...-v:不输出匹配行 -A :显示所找匹配字段,并显示下面指定行数信息 -B :显示所找匹配字段,并显示上面指定行数信息 正则表达式表示方法: 忽略正则表达式中特殊字符原有含义.../cutcmd.txt --------- 命令:sed 功能:通过指定正则表达式完成指定关键字过滤、截取、修改等操作 特点: 1.sed属于一个流线式交互式编辑器 2. sed在输入命令和文件名后

    2.1K30

    收藏了800道Java后端经典面试题,分享给大家,希望你找到自己理想Offer呀~

    数组有没有length()方法?String有没有length()方法? 是否可以从一个静态(static)方法内部发出对静态(non-static)方法调用?...你在多线程环境中遇到共同问题是什么?你是怎么解决它Java 中能创建 volatile数组吗 volatile 能使得一个原子操作变成原子操作吗 你是如何调用 wait()方法?...何时使用聚簇索引与聚簇索引 聚簇索引一定会回表查询吗? 联合索引是什么?为什么需要注意联合索引中顺序? 什么是数据库事务? 隔离级别与锁关系 按照锁粒度分,数据库锁有哪些呢?...延迟加载原理是什么? mybatis 动态sql中使用标签与直接写where关键字有什么区别? mybatis 动态sql标签中循环标签中有哪些属性,各自作用。...Spring支持哪些事务管理类型 在Spring AOP 中,关注点和横切关注区别是什么? spring 中有多少种IOC 容器?

    1.1K20

    【编程基础】Java初学者需要了解10个语法细节

    要学习和使用Java语言就要遵守Java语言规则,要不然你程序就不是Java程序,下面聊聊学习Java都需要注意哪些语言规则。 ? 1、Java中区分大小写。...所有Java程序入口是public static void main(String [] arg0)方法,所以看程序一般都是从main方法看起; 7、注意分行。...中空行。...空行会被编译器忽略,用空行多是为了让程序整洁易读。 ? 总结:写代码重要是整洁、易读,让自己和别人都看得懂很重要。这里可能有人会说我自己写代码我还不知道,如果你这样认为那你肯定没有写过多少代码。...在工作中有的时候你是做很多项目,做完一个再做一个之后让你回头改第一个项目的bug这个时候如果你代码写不整洁也没有添加注释的话你有你受,这也是给写程序的人们一个建议。

    79941

    Linux三剑客(grep、sed、awk)

    一、正则表达式 所谓正则表达式我个人理解就是正规表示方法。他是用简单方法来实现强大功能,所以深受计算机爱好者使用。 三剑客与正则表达式是什么关系呢?...具体如下 元字符 功能 意思 ^ 匹配行首 表示以某个字符开头 $ 匹配行尾 表示以某个字符结尾 ^$ 空行意思 表示空行意思 ....-w 匹配整个单词 -E 使用ERE,相当于egrep -F 相当于fgrep,不支持正则表达式 举例子: 1、查找文件内容包含root行数 2、查找文件内容不包含root行 3、查找以s开头行...注意:以上都是内置变量,在引用时不需要前面加$,每新建一个变量,都需要加个-v,与变量名之间有无空格都可以,变量可以在引用之后再声明,但那一行输出会输出空行。...~:是否不匹配 逻辑操作符:与&&,或||,! 函数调用:function_name(argu1, argu2, ...) 条件表达式(三目表达式):selector?

    1.5K10

    014:Redis线程IO模型

    阻塞 IO 当我们调用套接字读写方法,默认它们是阻塞,比如 read 方法要传递进去一个参数 n,表示读取这么多字节后再返回,如果没有读够线程就会卡在那里,直到新数据到来或者连接关闭了,read...而 write 方法一般来说不会阻塞,除非内核为套接字分配写缓冲区已经满了,write 方法就会阻塞,直到缓存区中有空闲空间挪出来了。...阻塞 IO 在套接字对象上提供了一个选项 Non_Blocking,当这个选项打开时,读写方 法不会阻塞,而是能读多少多少,能写多少多少。...能读多少取决于内核为套接字分配读缓冲区内部数据字节数,能写多少取决于内核为套接字分配写缓冲区空闲空间字节数。读方法和写方法都会通过返回值来告知程序实际读写了多少字节。...事件轮询 API 就是 Java 语言里面的 NIO 技术Java NIO 并不是 Java 特有的技术,其它计算机语言都有这个技术,只不过换了一个词汇,不叫 NIO 而已。

    51020

    python各种快捷键用法,真不收藏吗!!!

    一、经常使用常用快捷键(Shortcut Key) 快捷键 说明 Ctrl+Enter 在下方新建行但不移动光标 Ctrl+Alt+I 自动缩进行 Ctrl+Alt+L 格式化代码(与QQ锁定热键冲突...行代码/插空行 说明 Ctrl+Delete 删除到字符结束 Ctrl+Backspace 删除到字符开始 Shift+Enter 向下插行 Ctrl+Shift+Enter 向上插入空行 Ctrl+...Y 删除当前行 Ctrl+D 复制当前行 Ctrl+Shift+J 合并选择行 八、快速查找文件 查找文件 说明 Ctrl+E 开最近访问过文件 Ctrl+Shift+E 打开最近编辑过文件 按两下...Shift 搜索文件名、类名、方法名 在关键字前加/ 搜素目录名 九、查找代码相关信息 查找代码 说明 Ctrl+Shift+i 快捷查看方法实现内容 Ctrl+P 查看参数 Ctrl+Q 查看程序帮助...文本描述 Shift+F1 查看api文档 Ctrl+F12 查看类方法 Ctrl+H 查看类继承关系 Ctrl+Alt+H 查看方法在那里被调用了 Ctrl+{} 可以定位方法括号 F3 查看选中内容

    77640

    学界 | 为代码自动添加注释,让 Java 程序阅读和开发更高效

    使用空行隔开不同方法代码可以帮助阅读者理解代码;但是,他们仍然需要阅读代码。...我们将与对象相关动作单元定义为仅由结构化连续语句构成动作单元且这些结构化连续语句是通过对象互相关联在一起结构化语句是变量声明/赋值或方法调用语句。...在从 GitHub 随机选择 1000 个开源项目中,我们发现用空行隔开代码块中有 23.03% 都是与对象相关动作单元。 ?...在我们分析中,我们使用空行来为我们提供学习这些模板样本,因为 Java 开发者传统上会使用空行来将方法分割成逻辑上相关各个部分 [7,8,9]。...因此,在学习开发者如何将一个方法分成多个算法步骤方面,空行是一个重要来源。尽管我们使用空行来学习用于识别与对象相关动作单元模板,但我们基于模板识别方法并不依赖于方法空行

    82370

    linux基础操作

    命令操作使用规范 1) 了解命令提示符作用: 后面可以输入命令 root@ting ~# //这是超级管理员root用户管理系统 ting@ting ~$ //这是普通用户...--- 过滤空行信息 grep -Ev "^#|^$" /etc/selinux/config --- 将空行和注释信息排除,显示文件最有用信息 方法二: 筛选文件有用信息 grep "^a-Z" /..."oldgirl" > ting.txt --- 清空文件内容, 添加新信息 echo "ting" >> ting.txt --- 保留文件内容, 追加新信息 方法三: vi 直接创建和编辑文件...find /etc/ -type f -name "ifcfg-eth0" ③ 根据文件大小信息查找 find /etc/ -type f -size +5M 单位 c k M G +大于多少文件...- 小于多少文件 没有+-正好多大文件 ④ 根据时间查找文件信息 ***** find /root/ -mtime +7 find /root/ -mtime -7 find /root/ -

    61300

    linux下快速列出文件列表方法

    于是如何快速获取文件列表便是这两天头等大事,折腾半天找到一个较为快速方法,记录如下。 多种实现方法 尝试了多种方法,有编程编程。...scan_path(p.path, level - 1)) else: files.append(p.path) return files 当这两种方法都行不通时候我就开始考虑才用编程方法了...理论上来说python执行效率已经蛮高了,虽然可能达不到c或者c++速度,但是相比java、C#来说已经够快了,所以就没有再考虑编程方式,而是转向linux系统原生方式。...tree -afi -L 3 -o 2.txt --noreport src -a列出所有文件,-f列出完整路径(结果为绝对路径或者相对路径与find用法一致),-i不画tree结构线, -L列出多少层目录...find find命令本身是查找文件命令,但是如果使用得当,能够快速列出目录下文件,命令如下: find src > 1.txt 此命令速度足够快,基本能够满足需要了。

    3.4K50

    pycharm 常用快捷键_PyCharm快捷键

    1、快速查找文件  Ctrl + E Ctrl + E     可打开最近访问过文件 Ctrl + Shift + E 打开最近编辑过文件 从Tab页逐个地扫描也不快,如果你有强迫症不想显示...2、万能搜索 shift连按两下 Pycharm中最实用快捷键, Double Shift 莫属,连续按两下 Shitf 键可以搜索文件名、类名、方法名,还可以搜索目录名,搜索目录技巧是在在关键字前面加斜杠...4、智能提示/导包 Alt + Enter 智能提示是 IDE 标配功能,Pycharm 默认有自动提示功能,但是还不够智能,比如要使用还没有引入到模块则没法自动提示了,使用 Alt + Enter...) Shift + Tab  对单行或选中多行撤销回退一个tab Shift + Enter  任意位置换行(快速在当前行下创建一个空行) Shift + Alt + ↑/↓  向上/向下移动任意行...自定义PyCharm快捷键设置方法 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/174394.html原文链接:https://javaforall.cn

    1.1K20

    Java8:当 Lambda 遇上受检异常

    点击上方“码农沉思录”,选择“设为星标” 优质文章,及时送达 前言 我今天高高兴兴,想写个简单统计一个项目下有多少行代码小程序,于是咔咔写下: long count = Files.walk...,此时 Lambda 中并不需要捕获异常(因为目标类型 apply 方法已经将异常抛出了)—— 之所以原来 Lambda 需要捕获异常,就是因为在流式操作 flatMap 中使用 java.util.function...包下 Function 没有抛出异常: java.util.function.Function 那我们如何使用 CheckedFunction 到流式操作 Lambda 中呢?...,我们使用 Attempt.apply 方法来对会抛出受检异常 Lambda 进行包装: long count = Files.walk(Paths.get("D:/Test"))...Lambda 包装为 抛出受检异常 Lambda .filter(line -> !

    75510

    【干货】这17个技能,让你Excel飞一样提升

    1、最快数据行公式求和 选取空行,点Σ(或按Alt + =)可以快速设置求和公式 2、多区域最快求和 如果求和区域有多个,可以选定位,然后再点Σ(或按Alt+ =)可以快速设置求和公式。...3.拆分姓名和手机号码 先输入第一个姓名,选取它和下面的空行,按Ctrl+E,一秒搞定拆分(提取手机号码同样方法) 即使手机号码位置不定,也可以提取出来 4、快速复制表格 复制 - 粘贴,99.9%的人都是这样复制一个表...10、小数变整数 按ctrl+shift+1 即可快速把区域内小数变成整数 11、合并单元格排序 如果表格中有合并单元格,排序将变得非常困难。...排序方法演示: 12、隔行填充 ctrl+g定位条件空值 - 在编辑栏中输入=A2,按ctrl+enter完成填充 13、多列转一列 =第2列第一个单元格,向下向右复制,最后公式转换成数值。...17、Rank函数 作用:计算某个值在一组数据中排名 示例:在C列计算当日收入总排名 =RANK(B2,B:B)

    1.6K60

    Java8(1):当 Lambda 遇上受检异常

    我今天高高兴兴,想写个简单统计一个项目下有多少行代码小程序,于是咔咔写下: long count = Files.walk(Paths.get("D:/Test"))...Lambda 目标类型,此时 Lambda 中并不需要捕获异常(因为目标类型 apply 方法已经将异常抛出了)—— 之所以原来 Lambda 需要捕获异常,就是因为在流式操作 flatMap 中使用...java.util.function 包下 Function 没有抛出异常: 那我们如何使用 UncheckedFunction 到流式操作 Lambda 中呢?...,我们使用 Try.of 方法来对会抛出受检异常 Lambda 进行包装: long count = Files.walk(Paths.get("D:/Test")) //...); 使用 UncheckedFunction 这种方式更为通用,我们可以在更多地方将 UncheckedFunction 包装成 java.util.function.Function。

    41920

    Java8:当 Lambda 遇上受检异常

    转自:Coder编程 前言 我今天高高兴兴,想写个简单统计一个项目下有多少行代码小程序,于是咔咔写下: long count = Files.walk(Paths.get("D:/Test"))...,此时 Lambda 中并不需要捕获异常(因为目标类型 apply 方法已经将异常抛出了)—— 之所以原来 Lambda 需要捕获异常,就是因为在流式操作 flatMap 中使用 java.util.function...包下 Function 没有抛出异常: java.util.function.Function 那我们如何使用 CheckedFunction 到流式操作 Lambda 中呢?...,我们使用 Attempt.apply 方法来对会抛出受检异常 Lambda 进行包装: long count = Files.walk(Paths.get("D:/Test"))...Lambda 包装为 抛出受检异常 Lambda .filter(line -> !

    80930
    领券