java 获得文件的行数据_Java 读取文件指定行数据

public class ReadFileDemo1 {

/**

* 获取错误文件中的记录号

* @param sourceFile

* @return

*/

public static int[] readBadFile(String sourceFile){

FileReader in = null;

LineNumberReader reader = null;

int[] array = new int[0];

try {

//获取文件总行数

long totalLine = Files.lines(Paths.get(sourceFile)).count();

//构建数组

array = new int[(int)(totalLine)];

in = new FileReader(sourceFile);

reader = new LineNumberReader(in);

String s = reader.readLine();

int i = 0;

while(s != null){

System.out.println(s);

int index = s.indexOf(":");

array[i++] = Integer.parseInt(s.substring(2,index)) + 1;

s = reader.readLine();

}

} catch (IOException e) {

e.printStackTrace();

} finally {

closeResource(in, reader);

}

return array;

}

/**

* 读取文件指定行数(读取一行)

* @param filePath

* @param lineNumber

*/

public static String readAppointedLineNumber(String filePath,int lineNumber){

String appointedLine = "";

FileReader in = null;

LineNumberReader reader = null;

try {

in = new FileReader(filePath);

reader = new LineNumberReader(in);

long totalLine = Files.lines(Paths.get(filePath)).count();

if(lineNumber < 0 || lineNumber > totalLine){

return "指定行【"+lineNumber+"】不在文件行数范围内";

}

int line = 1;

reader.setLineNumber(lineNumber);

long i = reader.getLineNumber();

String s = "";

while((s = reader.readLine()) != null){

if(i == line){

appointedLine = s;

break;

}

line++;

}

return appointedLine;

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

} finally {

closeResource(in, reader);

}

return appointedLine;

}

/**

* 读取文件指定行数(读取多行)

* @param filePath

* @param lineArray

*/

public static List readAppointedLineNumberArray(String filePath,int[] lineArray){

FileReader in = null;

LineNumberReader reader = null;

List resultStr = new ArrayList();

//对数组按从小到大排序

lineArray = sortArray(lineArray);

if(lineArray.length == 0){

return new ArrayList();

}

try {

in = new FileReader(filePath);

reader = new LineNumberReader(in);

int lineNumber = lineArray.length;

int line = 1;

int i = 0;

String s = "";

while((s = reader.readLine()) != null){

if(i < lineNumber && line ==lineArray[i]){

i++;

System.out.println(s);

resultStr.add(s);

}

line++;

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

} finally {

closeResource(in, reader);

}

return resultStr;

}

/**

* 关闭资源

* @param in

* @param reader

*/

public static void closeResource(FileReader in,LineNumberReader reader){

try {

if(reader != null){

reader.close();

}

if(in != null){

in.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 冒泡排序

* @param array

* @return

*/

public static int[] sortArray(int[] array){

if(array.length == 0){

return array;

}

for(int i = 0; i < array.length; i++){

for(int j = 0; j < array.length-i-1; j++){

if(array[j+1] < array[j]){

int temp = array[j+1];

array[j + 1] = array[j];

array[j] = temp;

}

}

}

return array;

}

}

原文:https://www.cnblogs.com/baoqinghe/p/13277088.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几款浏览器JavaScript调试工具

WEB开发工具的使用已经非常普及&#xff0c;如果想要更方便于开发的话&#xff0c;不妨看看本文介绍的15款基于浏览器扩展的WEB开发工具。 1.Firebug Firebug是一款基于Firefox的浏览器扩展组件&#xff0c;它集成了网页CSS &#xff0c;文档对象模型( DOM )和JavaScript调试技…

mysql tomcat列表增删改查_Tomcat-Database

Tomcat-Database介绍根据Tomcat9源码二次开发&#xff0c;增加数据库功能&#xff0c;可一行代码实现CURD安装教程需要先配置Ant&#xff0c;然后在根目录下执行ant命令&#xff0c;即可编译&#xff0c;编译后的目录在Tomcat-Database/output/build下&#xff0c;其中在bin下可…

fatal error C1010: unexpected end of file while looking for precompiled head

致命错误C1010&#xff1a;在寻找预编译指示头文件时&#xff0c;文件未预期结束。 就是没有找到预编译指示信息的头文件。 问题一般发生在&#xff1a;通过添加文件的方式&#xff0c;添加了一些cpp文件到一个MFC的程序&#xff0c;但该cpp文件并不是MFC&#xff0c;而是标准…

Kafka集群部署CentOS 7

一、前言 1、Kafka简介 Kafka是一个开源的分布式消息引擎/消息中间件&#xff0c;同时Kafka也是一个流处理平台。Kakfa支持以发布/订阅的方式在应用间传递消息&#xff0c;同时并基于消息功能添加了Kafka Connect、Kafka Streams以支持连接其他系统的数据(Elasticsearch、Had…

Asp.net中Js、Css文件压缩辅助类

类名&#xff1a;WebCompressUtility.cs 代码如下&#xff1a; /// <summary>/// Js、Css文件压缩辅助类/// Stone_W/// 2011.6.21/// </summary>public class WebCompressUtility{public WebCompressUtility() { }#region 判断浏览器是否支持指定压缩/// <sum…

mysql+e+文件+xls_TP5+PHPexcel导入xls,xlsx文件读取数据

首先:在extend里面引入PHPexcel文件,直接根目录导入进去html创建上传按钮上传excel上传文件立即提交重置layui.use([form,upload],function(){var formlayui.form;var uploadlayui.upload;upload.render({ //允许上传的文件后缀elem: #myfile,url: "{:url(sale/do_uploa…

SQL Server 2008 FILESTREAM特性管理文件

在SQL Server 2008中&#xff0c;新的FILESTREAM&#xff08;文件流&#xff09;特性和varbinary列配合&#xff0c;你可以在服务器的文件系统上存储真实的数据&#xff0c;但可以在数据库上下文内管理和访问&#xff0c;这个特性让SQL Server不仅可以维护好数据库内记录的完整…

IP地址、手机归属和身份证查询接口

1. 查询手机&#xff1a;http://www.yodao.com/smartresult-xml/search.s?typemobile&q手机号码 2. 查询IP&#xff1a;http://www.yodao.com/smartresult-xml/search.s?typeip&qIP地址 3. 查询身份证&#xff1a;http://www.yodao.com/smartresult-xml/search.s?…

mysql5.6.24安装perl_mysql5.6源码安装

背景&#xff1a;现有mysql版本为5.5.40&#xff0c;考虑到以后需做主从&#xff0c;而5.6在主从方面、mysql读写方面都有很大提升。所以&#xff0c;准备升级。官网&#xff1a;http://www.mysql.com/环境&#xff1a;centos6.5 X86_64安装目录&#xff1a;/database/mysql解压…

把字符串转化为类型

问题&#xff1a;可以得到类型的String格式的名称&#xff0c;想要转化为相应的类型&#xff1f; ps&#xff1a;今天定义了好多个枚举类型&#xff0c;把枚举名称存放在一个ComboBox类名&#xff0c;控件值改变的时候要查询出这个枚举的所有属性集合&#xff0c;刚开始想到反…

System.Drawing.Color转System.Windows.Media.Color

2019独角兽企业重金招聘Python工程师标准>>> //这是两个不同的类 System.Windows.Media.Color color (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString(transItemList[i].color.Name); 转载于:https://my.oschina.net/SearchVe…

Prometheus 监控Mysql服务器及Grafana可视化

Prometheus 监控Mysql服务器及Grafana可视化 mysql_exporter&#xff1a;用于收集MySQL性能信息。 使用版本mysqld_exporter 0.11.0官方地址使用文档&#xff1a;https://github.com/prometheus/mysqld_exporter图标模板&#xff1a;https://grafana.com/dashboards/7362下载…

visual studio 2010 如何修改assemblyInfo.cs默认值

这个应该是安装系统时的单位名称。修改HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization的值即可。另外&#xff0c;可以修改项目模板里面的内容C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\W…

mysql重要的监控参数_zabbix3.0.2使用percona mysql插件来监控mysql5.7   以及必须监控的性能参数...

http://tongcheng.blog.51cto.com/6214144/1620158http://www.cnblogs.com/caoxiaojian/p/5706992.htmlhttp://blog.csdn.net/mchdba/article/details/51447750对比zabbix全方位监控mysql&#xff0c;尤其注意以下监控项MySQL InnoDB Buffer Poolpool sizedatabase pages In…

Microsoft SQL Server 2005 提供了一些工具来监控数据库

--WL 09-07-03/*Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。常规服务器动态管理对象包括&#xff1a;dm_db_*&#…

关于ORA-01187: cannot read from file because it failed verification tests 的处理方法

环境&#xff1a;OELOracle 11.2.0.3physical standby 问题描述&#xff1a;查询dba_temp_files试图时显示Ora-01187错误号&#xff1b; ORA-01187: cannot read from file because it failed verification tests ORA-01110: data file 201: /oradata/seven/temp01.dbf 重现下…

Kafka集群部署搭建完美标准版

Kafka集群部署并启动 在本文中将从演示如何搭建一个Kafka集群开始&#xff0c;然后简要介绍一下关于Kafka集群的一些基础知识点。但本文仅针对集群做介绍&#xff0c;对于Kafka的基本概念不做过多说明&#xff0c;这里假设读者拥有一定的Kafka基础知识。 首先&#xff0c;我们…

java字符流和字节流的区别_java字符流与字节流的区别是什么

java中字符流与字节流的区别&#xff1a;1、字节流操作的基本单元为字节&#xff1b;字符流操作的基本单元为Unicode码元。2、字节流默认不使用缓冲区&#xff1b;字符流使用缓冲区。3、字节流通常用于处理二进制数据&#xff0c;实际上它可以处理任意类型的数据&#xff0c;但…

IEPNGFix:Unclickable children of element 解决办法

以前我有写过一篇关于让IE6支持png半透明图片的方法&#xff0c;这期间这一神器一直发挥了很大的作用&#xff0c;并且没有出现过什么差错&#xff0c;直到昨天。 昨天同事做的一个项目因为设计图的关系&#xff0c;所以实现起来用到了很多position定位的属性&#xff0c;这里…

ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper

许多时候我们会遇到如下场景 在写一个编辑数据的页面时&#xff0c;我们通常会写如下代码 1: <input type"text" value<%ViewData["title"] %> name"title" /> 由前篇我们所讲的Helper演化&#xff0c;我们思考&#xff0c;对于这种…