锁定老帖子 主题:以最快的速度获取文本行数(使用Java)
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-13
最后修改:2010-12-13
涉及技术:Apache表单文件,JDK的io 代码片段: //判断文件行数,formFile是表单文件类org.apache.struts.upload.FormFile LineNumberReader lnr = new LineNumberReader(new InputStreamReader(formFile.getInputStream())); lnr.skip(formFile.getFileSize()); if(lnr.getLineNumber() + 1 >= 50) { //err输出“文件行数不能超过50行!” } lnr.close(); 优缺点:我认为优点是不用遍历了,缺点不能辨别空白行 小弟抛砖引玉,大家评论下这段代码吧,说说如何用Java最有效率的获取文本行数 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-12-13
难道大家没遇见过这种问题么?获取文本行数的
|
|
返回顶楼 | |
发表时间:2010-12-13
先问一下
lnr.getLineNumber() + 1 >= 50 为什么要这么写? |
|
返回顶楼 | |
发表时间:2010-12-13
觉得java代码嵌入正则表达式最快
|
|
返回顶楼 | |
发表时间:2010-12-13
jxygjzh 写道 先问一下
lnr.getLineNumber() + 1 >= 50 为什么要这么写? 很简单,这个api得到的行数是从0开始的,业务上需要从1开始 |
|
返回顶楼 | |
发表时间:2010-12-13
piper 写道 觉得java代码嵌入正则表达式最快
请举例 |
|
返回顶楼 | |
发表时间:2010-12-13
数下回车的个数行吗?
|
|
返回顶楼 | |
发表时间:2010-12-13
LineNumberReader底层是怎么写的? 难道真的不用遍历?
|
|
返回顶楼 | |
发表时间:2010-12-13
zhangcong170 写道 LineNumberReader底层是怎么写的? 难道真的不用遍历?
确实,刚看了下LineNumberReader的实现,里面遍历了。唉,本以为找到个方式不用遍历的。。。 |
|
返回顶楼 | |
发表时间:2010-12-13
smo_apple 写道 数下回车的个数行吗?
好主意,可惜我不会正则,一会忙完了研究研究 |
|
返回顶楼 | |