Java根据txt文件数据得到list_java中如何将一个txt文件中的数字读取到一个ArrayList集合中?...
展开全部
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FileParser {
private File file;
private BufferedReader reader;
private InputStream is;
private InputStreamReader isReader;
public FileParser() {}
public FileParser(String filePath) {
file = new File(filePath);
initReader();
}
/**
初始化文件输入32313133353236313431303231363533e78988e69d8331333337613235流,为文件读取做准备
*/
private void initReader() {
if(file != null && file.isFile() && file.canRead()) {
//文件存在可读取并且是“文件”而不是目录
try {
is = new FileInputStream(file);//创建文件输入流
isReader = new InputStreamReader(is);//创建输出流的Reader
reader = new BufferedReader(isReader);//用于按行读取文件
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
转换文件内容,将文件中的数据转换成List
*/
public List parse() {
List lstNumber = null;//最终结果保存在这里
String txtLine = null;//临时变量,保存按行读取到的字符串
String splitRegexp = "([0-9]+)\\s?";//匹配数字的正则表达式
Pattern pattern = Pattern.compile(splitRegexp);//编译正则
Matcher matcher = null;//正则的Matcher对象
//开始读取文件
if(reader != null) {
lstNumber = new ArrayList();//初始化List
try {
while((txtLine = reader.readLine()) != null) {//按行读取文件
matcher = pattern.matcher(txtLine);//获取matcher实例,准备进行查找
while(matcher.find()) {//查找符合条件的匹配组,将结果放入List
lstNumber.add(Integer.valueOf(matcher.group(1)));
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭流
try {
reader.close();
isReader.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return lstNumber;//返回结果
}
public static void main(String[] args) {
FileParser fileParser = new FileParser("D:\\test.txt");
System.out.println(fileParser.parse());
}
}
test.txt内容格式如下:
1 10 100 99 5 76 82 93
20 123 75 1232 85 12
程序核心就是用正则表达式来查找文件中符合要求的内容,效率要比字符串的分割操作高。大体流程就是判断文件是不是存在且可读取,然后通过BufferedReader按行取得文件内容,最后用正则表达式来分离出目标数据放入结果集中。
Java根据txt文件数据得到list_java中如何将一个txt文件中的数字读取到一个ArrayList集合中?...相关推荐
- php字符串定义为arraylist,如何把arraylist集合中的字符串数据保存的文本文件中
分析: (推荐教程:java课程) 通过题目的意思我们可以知道如下内容:ArrayList集合里存储的是字符串 遍历ArrayList集合,把数据获取 然后存储到文本文件中 文本文文件说明使用文本文件 ...
- 【Java面试题】54 去掉一个Vector集合中重复的元素
在Java中去掉一个 Vector 集合中重复的元素 1)通过Vector.contains()方法判断是否包含该元素,如果没有包含就添加到新的集合当中,适用于数据较小的情况下. import jav ...
- 使用DMO遍历xml文件(将xml文件中要获取的内容存到ArrayList集合中再取出来)(DMO解析)
以下是我要将xml文件中要获取的内容存到ArrayList集合中再取出来的代码,大家也可以不用弄到集合去,我弄到集合也是为了好玩而已,哈哈... import java.io.IOException; ...
- java 集合自定义元素_java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。...
import java.util.*;/*将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据封装 ...
- Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素...
1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5 ...
- java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)
定义一个功能将ArrayList 集合中的重复元素删除 ArrayList 集合中是允许储存重复元素的 import java.util.ArrayList; import java.util.Ite ...
- java指定存入arraylist值_Java高效打印出0000-9999之间所有的值存到arraylist集合中
Java高效打印出0000-9999之间所有的值存到arraylist集合中public static void main(String[] args) { /** * 推荐用Java8 的新特性St ...
- java遍历集合中的元素_java中如何遍历ArrayList集合中的元素并输出
问题: 假设集合ArrayList中存储的元素是整形数字1~5,遍历每个元素,将每个元素顺序输出. 在线学习视频推荐:java教学视频 示例如下:package work10; import java ...
- kettle将多个文件压缩_如何使用WinRAR将一个大文件压缩成多个小的压缩包
目录 1.使用WinRAR将一个大文件压缩成多个小的压缩包 2.使用WinRAR将多个小的压缩包,解压/合并成一个大文件 3.结尾 / 在现实生活中,受文件大小的限制,在传输的过程往往出现困难,如:邮 ...
最新文章
- 面试:为什么 Java 线程没有Running状态?
- 概率论-3.2 边际分布与随机变量的独立性
- 二项式反演[bzoj3622]已经没有什么好害怕的了
- 论ORM之EFCore初篇(快速基于本地数据库实现数据操作)
- python 画蜘蛛_如何学习 R 绘图?
- 音频编码解码器库 libZPlay
- iPhone 11全球热销:价格真香是硬道理
- fat jar包缺点_什么是fat JAR?
- python多线程怎么样_python如何使用多线程?
- SuperMap iObject入门开发系列七管线横断面分析
- linux 编译libvlc,libvlc源码编译
- 未来十年最紧缺的职业
- 程序员的插画成长之路并不平坦
- 获取不带后缀名的Excel文件名Python
- 摄像头 - 屏幕刷新率(Hz)与帧率(fps)的区别与关系
- uni-app+uview 购物车模块组件(笔记)
- Redis(狂神说 )学习使用笔记
- vue-router.esm-bundler.js?6c02:1474 Uncaught TypeError: Cannot read property ‘forEach‘ of undefined
- Mybatis insert exception argument mismatch
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛-A-Easy Equation
热门文章
- android护眼提醒,【Android 应用】护眼提醒.pdf
- 从空中截获BLE数据包看蓝牙5协议流程【第四部分:Ellisys蓝牙5连接分析】
- 解决上传文件时 nginx 413 Request Entity Too Large 错误
- 第7章第39节:多图排版:图片和色块的组合排版 [PowerPoint精美幻灯片实战教程]
- 微信小程序联盟:官方文档+精品教程+demo集合(5月31日更新,持续更新中……)...
- CNAS资质实验室,在实际运行中出现的问题
- 网络协议 P2p 学习 - Shareaza
- 斗兽棋详细设计说明文档
- [附源码]java毕业设计网上报销管理系统
- 贷后管理3大流程,专业术语及指标解析​