搜索
您的当前位置:首页正文

java读取数据文件,将数据封装到ListMap集合中

来源:好走旅游网
java读取数据⽂件,将数据封装到ListMap集合中

数据⽂件的格式:第⼀⾏是字段名称,⽤“|”分隔,第⼆⾏开始是数据,也⽤“|”分隔,如下图所⽰

解析分装到集合的代码如下:

package com.ultra.aliyun.control.main;import java.io.BufferedReader;import java.io.File;

import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.HashMap;import java.util.List;public class Test {

public static void main(String[] args) {

String filePath = \"D:\\\\aliyun_dataFile\\\\SURF_WEA_CHN_MUL_HOR_TAB-I-2.txt\"; List> list = readTxtFile2(filePath); System.out.println(list.size()); for (int i = 0; i < list.size(); i++) {

System.out.println(\"第i条记录\"+i+\":\"+list.get(i)); } }

public static List> readTxtFile2(String filePath){

//定义存储读取到的数据记录的集合

List> list = new ArrayList>(); try {

String encoding=\"UTF-8\"; File file=new File(filePath); //判断⽂件是否存在

if(file.isFile() && file.exists()){ //考虑到编码格式

InputStreamReader read = new InputStreamReader(new FileInputStream(file),encoding); BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; //记录读取的数据⽂件的⾏数 int count = 0; //定义字段的数组 String[] fields = null;

//定义每条记录取出的字段值数组 String[] fieldValue = null;

String[] fieldValue = null; //定义Map集合

HashMap map = new HashMap(); while((lineTxt = bufferedReader.readLine()) != null){

map = new HashMap(); if(count == 0) {

fields = lineTxt.split(\"\\\\|\"); System.out.println(\"fields:\"+fields); }else {

fieldValue = lineTxt.split(\"\\\\|\");

//System.out.println(\"fieldValue:\"+fieldValue); for(int i = 0; i < fields.length; i++) {

for (int j = 0; j < fieldValue.length; j++) { if(i == j) {

map.put(fields[i], fieldValue[j]); } } }

//将读取的每⼀⾏的记录存⼊到list集合中 list.add(map); }

count ++; }

read.close(); }else{

System.out.println(\"找不到指定的⽂件\"); }

} catch (Exception e) {

System.out.println(\"读取⽂件内容出错\"); e.printStackTrace(); }

return list; }}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top