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
java 获得文件的行数据_Java 读取文件指定行数据相关推荐
- java读取文件的方法是_Java读取文件方法大全
Java读取文件方法大全 2011/11/25 9:18:42 tohsj0806 http://tohsj0806.iteye.com 我要评论(0) 摘要:文章来源:http://www.c ...
- python 在excel指定列添加数据_python读取excel指定列数据并写入到新的excel方法
如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据------------------------- ...
- java获取xlsx某列数据_Java读取Excel指定列的数据详细教程和注意事项
本文使用jxl.jar工具类库实现读取Excel中指定列的数据. jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的.这套API是纯Java的,并不依赖Windows ...
- java读文件几种方式_JAVA读取文件的几种方式
{ File file1 = new File("/Users/tao/Downloads/酒店id.txt"); // 创建File类对象 FileInputStream fis ...
- java文件读写不完整_Java读取文件内容不完整
我想把文件一行一行地读出来存入到ArrayList中,countChar是计算文件中的字符个数用的.countChar的结果是对的,可是我在while循环里面逐行打印字符串s后发现,只打印了文件的后半 ...
- java文件读取的总结_java 读取文件方法的总结
java 读取文件方法的总结 1.按字节读取 文件 内容 2.按字符读取 文件 内容 3.按行读取 文件 内容 4.随机读取 文件 内容 public class ReadFromFile { /** ...
- java 根据分隔符从后往前读取文件数据
java 根据分隔符从后往前读取文件数据 思路 从前往后比较简单,使用Scanner的sc.useDelimiter(delimiter); 就可以. 从后往前 百度了半天似乎java没有从后往前读的 ...
- java读取空格_java 读取文件路径空格和中文的处理
应用部署时,发生文件读取错误,发现是部署路径中含有空格的文件夹名,然后把应用服务器位置迁移了. 从网上找到如下方案: 1, TestURL().class.getResource("&quo ...
- java 看书浏览器官_JAVA读取文件流,设置浏览器下载或直接预览操作
最近项目需要在浏览器中通过url预览图片.但发现浏览器始终默认下载,而不是预览.研究了一下,发现了问题: // 设置response的header,注意这句,如果开启,默认浏览器会进行下载操作,如果注 ...
最新文章
- blender硬表面建模渲染终极教程
- 中国计算机考试区别及求职的相关思考
- ajax js java省市三级联动菜单,AJAX省市区三级联动下拉菜单(java版)
- 设计师不用下课了吧?小米突然官宣性价比之王旗舰:升降式摄像头
- JAVA程序员必看的15本书
- 深度残差网络_深度残差收缩网络:(三) 网络结构
- python 视频转换为图像,图像转换为视频
- 永远不要因为这个工作不好而辞职、、、、
- 【概率笔记】条件概率这样学才快啦
- etcd upgrade
- 新版百度网盘公测,真不限速了
- DOM4J及SAXReader解析xml文件数据
- 英特尔芯片漏洞比想象中更严重:控制计算机无需密码
- 原来在朋友眼里,我是一个闪闪发光的人
- java程序员昵称_Java程序员需要掌握的几个代码命名
- 原生安卓10怎么打开面部识别_教你Windows10系统设置面部识别登录的技巧
- 四十三、Fluent增强收敛性-伪瞬态计算
- react想要子组件每次显示的时候都执行componentDidMount方法
- 总结如何提升网站流量之方法
- 实战演练 Navicat 中英文模式切换
热门文章
- HTTP1.1新增了五种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 、 CONNECT
- PHPWeb开发入门体验学习笔记
- OpenBSD基金会收到锤子科技约140万捐赠款
- Centos7+Nginx+Keepalived实现Apache服务的高可用负载均衡
- 关于HTML5标签不兼容(IE6~8)
- 反转链表-剑指offer-16
- php datediff 函数,dateAdd与DateDiff函数的js代码
- script filename php,PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别
- java时间日期工具类_java工具类--日期相关;
- java 线程分组_Java多线程可以分组,还能这样玩!