展开全部

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集合中?...相关推荐

  1. php字符串定义为arraylist,如何把arraylist集合中的字符串数据保存的文本文件中

    分析: (推荐教程:java课程) 通过题目的意思我们可以知道如下内容:ArrayList集合里存储的是字符串 遍历ArrayList集合,把数据获取 然后存储到文本文件中 文本文文件说明使用文本文件 ...

  2. 【Java面试题】54 去掉一个Vector集合中重复的元素

    在Java中去掉一个 Vector 集合中重复的元素 1)通过Vector.contains()方法判断是否包含该元素,如果没有包含就添加到新的集合当中,适用于数据较小的情况下. import jav ...

  3. 使用DMO遍历xml文件(将xml文件中要获取的内容存到ArrayList集合中再取出来)(DMO解析)

    以下是我要将xml文件中要获取的内容存到ArrayList集合中再取出来的代码,大家也可以不用弄到集合去,我弄到集合也是为了好玩而已,哈哈... import java.io.IOException; ...

  4. java 集合自定义元素_java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。...

    import java.util.*;/*将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据封装 ...

  5. Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素...

    1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5 ...

  6. java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)

    定义一个功能将ArrayList 集合中的重复元素删除 ArrayList 集合中是允许储存重复元素的 import java.util.ArrayList; import java.util.Ite ...

  7. java指定存入arraylist值_Java高效打印出0000-9999之间所有的值存到arraylist集合中

    Java高效打印出0000-9999之间所有的值存到arraylist集合中public static void main(String[] args) { /** * 推荐用Java8 的新特性St ...

  8. java遍历集合中的元素_java中如何遍历ArrayList集合中的元素并输出

    问题: 假设集合ArrayList中存储的元素是整形数字1~5,遍历每个元素,将每个元素顺序输出. 在线学习视频推荐:java教学视频 示例如下:package work10; import java ...

  9. kettle将多个文件压缩_如何使用WinRAR将一个大文件压缩成多个小的压缩包

    目录 1.使用WinRAR将一个大文件压缩成多个小的压缩包 2.使用WinRAR将多个小的压缩包,解压/合并成一个大文件 3.结尾 / 在现实生活中,受文件大小的限制,在传输的过程往往出现困难,如:邮 ...

最新文章

  1. 面试:为什么 Java 线程没有Running状态?
  2. 概率论-3.2 边际分布与随机变量的独立性
  3. 二项式反演[bzoj3622]已经没有什么好害怕的了
  4. 论ORM之EFCore初篇(快速基于本地数据库实现数据操作)
  5. python 画蜘蛛_如何学习 R 绘图?
  6. 音频编码解码器库 libZPlay
  7. iPhone 11全球热销:价格真香是硬道理
  8. fat jar包缺点_什么是fat JAR?
  9. python多线程怎么样_python如何使用多线程?
  10. SuperMap iObject入门开发系列七管线横断面分析
  11. linux 编译libvlc,libvlc源码编译
  12. 未来十年最紧缺的职业
  13. 程序员的插画成长之路并不平坦
  14. 获取不带后缀名的Excel文件名Python
  15. 摄像头 - 屏幕刷新率(Hz)与帧率(fps)的区别与关系
  16. uni-app+uview 购物车模块组件(笔记)
  17. Redis(狂神说 )学习使用笔记
  18. vue-router.esm-bundler.js?6c02:1474 Uncaught TypeError: Cannot read property ‘forEach‘ of undefined
  19. Mybatis insert exception argument mismatch
  20. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛-A-Easy Equation

热门文章

  1. android护眼提醒,【Android 应用】护眼提醒.pdf
  2. 从空中截获BLE数据包看蓝牙5协议流程【第四部分:Ellisys蓝牙5连接分析】
  3. 解决上传文件时 nginx 413 Request Entity Too Large 错误
  4. 第7章第39节:多图排版:图片和色块的组合排版 [PowerPoint精美幻灯片实战教程]
  5. 微信小程序联盟:官方文档+精品教程+demo集合(5月31日更新,持续更新中……)...
  6. CNAS资质实验室,在实际运行中出现的问题
  7. 网络协议 P2p 学习 - Shareaza
  8. 斗兽棋详细设计说明文档
  9. [附源码]java毕业设计网上报销管理系统
  10. 贷后管理3大流程,专业术语及指标解析​