2.当前工程目录下user.txt文件里有三行数据,
分别是“张三,123",李四,456,“王五,789,编
写程序读取文件里的数据,使用 HashMap集
合进行存储,并打印输出。
用IO流读取数据就行了,然后封装到hashmap中,如有代码需要可进一步私信
思路:
1.定义javabean,
2.使用BufferedReader读取数据,按行读取,放到javabean;
3.把javabean放到HashMap中,遍历打印就可以了。
思路:
1、封装实体类User(name,nameNo)
2、用字符流读取文件,按行读取。并进行分割,然后存放在User对象中
3、将User对象放HashMap集合中
4、遍历输出
如有帮助,请采纳。
package com.ht.servlet;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
public class txttest {
public static void main(String[] args) {
File file = new File("D:/test1.txt");
Map<String, String> map = new HashMap<String, String>();
try {
BufferedReader br = new BufferedReader(new FileReader(file));// 构造一个BufferedReader类来读取文件
String s = "";
int i=0;
while ((s = br.readLine()) != null) {// 使用readLine方法,一次读一行
System.out.println(s);
map.put(i+"", s);
i++;
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
user.txt文件在工程目录下的resources目录下
import org.springframework.util.ResourceUtils;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/**
* 当前工程目录下user.txt文件里有三行数据, <br>
* 分别是:张三,123,李四,456,王五,789,编写程序读取文件里的数据,使用 HashMap集 合进行存储,并打印输出。
* @author ThinkPad
*/
public class FileUtil {
/**
* 读取文件里的数据,使用 HashMap集 合进行存储
*
* @param file file
* @return map
*/
public static Map<String, String> readFileToMap(File file) {
Map<String, String> map = new HashMap<>();
String str;
// try-with-resource 自动关闭IO流
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
// 判断最后一行不存在,为空结束循环
while ((str = br.readLine()) != null) {
// 原样输出读到的内容
System.out.println(str);
// 读出一行用英文状态下的逗号分隔开,取出编号和用户名存放到map
String[] split = str.trim().split(",");
map.put(split[1], split[0]);
}
} catch (IOException e) {
// 异常需要进行处理
e.printStackTrace();
}
return map;
}
public static void main(String[] args) throws FileNotFoundException {
File file = ResourceUtils.getFile("classpath:user.txt");
Map<String, String> map = readFileToMap(file);
System.out.println("map: " + map);
}
}
运行结果: