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

java 获得文件的行数据_Java 读取文件指定行数据相关推荐

  1. java读取文件的方法是_Java读取文件方法大全

    Java读取文件方法大全 2011/11/25 9:18:42  tohsj0806  http://tohsj0806.iteye.com  我要评论(0) 摘要:文章来源:http://www.c ...

  2. python 在excel指定列添加数据_python读取excel指定列数据并写入到新的excel方法

    如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...

  3. java获取xlsx某列数据_Java读取Excel指定列的数据详细教程和注意事项

    本文使用jxl.jar工具类库实现读取Excel中指定列的数据. jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的.这套API是纯Java的,并不依赖Windows ...

  4. java读文件几种方式_JAVA读取文件的几种方式

    { File file1 = new File("/Users/tao/Downloads/酒店id.txt"); // 创建File类对象 FileInputStream fis ...

  5. java文件读写不完整_Java读取文件内容不完整

    我想把文件一行一行地读出来存入到ArrayList中,countChar是计算文件中的字符个数用的.countChar的结果是对的,可是我在while循环里面逐行打印字符串s后发现,只打印了文件的后半 ...

  6. java文件读取的总结_java 读取文件方法的总结

    java 读取文件方法的总结 1.按字节读取 文件 内容 2.按字符读取 文件 内容 3.按行读取 文件 内容 4.随机读取 文件 内容 public class ReadFromFile { /** ...

  7. java 根据分隔符从后往前读取文件数据

    java 根据分隔符从后往前读取文件数据 思路 从前往后比较简单,使用Scanner的sc.useDelimiter(delimiter); 就可以. 从后往前 百度了半天似乎java没有从后往前读的 ...

  8. java读取空格_java 读取文件路径空格和中文的处理

    应用部署时,发生文件读取错误,发现是部署路径中含有空格的文件夹名,然后把应用服务器位置迁移了. 从网上找到如下方案: 1, TestURL().class.getResource("&quo ...

  9. java 看书浏览器官_JAVA读取文件流,设置浏览器下载或直接预览操作

    最近项目需要在浏览器中通过url预览图片.但发现浏览器始终默认下载,而不是预览.研究了一下,发现了问题: // 设置response的header,注意这句,如果开启,默认浏览器会进行下载操作,如果注 ...

最新文章

  1. blender硬表面建模渲染终极教程
  2. 中国计算机考试区别及求职的相关思考
  3. ajax js java省市三级联动菜单,AJAX省市区三级联动下拉菜单(java版)
  4. 设计师不用下课了吧?小米突然官宣性价比之王旗舰:升降式摄像头
  5. JAVA程序员必看的15本书
  6. 深度残差网络_深度残差收缩网络:(三) 网络结构
  7. python 视频转换为图像,图像转换为视频
  8. 永远不要因为这个工作不好而辞职、、、、
  9. 【概率笔记】条件概率这样学才快啦
  10. etcd upgrade
  11. 新版百度网盘公测,真不限速了
  12. DOM4J及SAXReader解析xml文件数据
  13. 英特尔芯片漏洞比想象中更严重:控制计算机无需密码
  14. 原来在朋友眼里,我是一个闪闪发光的人
  15. java程序员昵称_Java程序员需要掌握的几个代码命名
  16. 原生安卓10怎么打开面部识别_教你Windows10系统设置面部识别登录的技巧
  17. 四十三、Fluent增强收敛性-伪瞬态计算
  18. react想要子组件每次显示的时候都执行componentDidMount方法
  19. 总结如何提升网站流量之方法
  20. 实战演练 Navicat 中英文模式切换

热门文章

  1. HTTP1.1新增了五种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 、 CONNECT
  2. PHPWeb开发入门体验学习笔记
  3. OpenBSD基金会收到锤子科技约140万捐赠款
  4. Centos7+Nginx+Keepalived实现Apache服务的高可用负载均衡
  5. 关于HTML5标签不兼容(IE6~8)
  6. 反转链表-剑指offer-16
  7. php datediff 函数,dateAdd与DateDiff函数的js代码
  8. script filename php,PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别
  9. java时间日期工具类_java工具类--日期相关;
  10. java 线程分组_Java多线程可以分组,还能这样玩!