****文本文件格式:****
FirstName,lastname,role,startdate,emptype
sreedhar,reddy,Admin,20-2-2018,contract
shekar,kumar,Admin,20-2-2018,contract
RAJ,roy,Admin,20-2-2018,contract
somu,reddy,Admin,20-2-2018,contract
sumanth,reddy,Admin,20-2-2018,contract
问题:
如何阅读文本文件以及如何放入Map(Key,vaule);
第一行在地图中有键(例如:firstname,lastname,ect)
地图上的第二行(例如:sreedhar,reddy等)
地图输出:{Firstname:sreedhar,Lastname:reddy,role:Admin,startdat:2-6-2018}
答案 0 :(得分:1)
您需要为Map指定一个不同的密钥,因为它每次都需要一个唯一的密钥:
地图不能包含重复的键;每个键最多可映射一个 值。
所以你很可能需要Map
Map
来这里:
读入文件:
File file = new File("\\\\share\\path\\to\\file\\text.txt");
添加到扫描仪:
Scanner input = new Scanner(file);
将第一行读作“标题”:
String[] headerArray = input.nextLine().split(",");
创建Map
Map
s:
Map<String, Map<String, String>> myMap = new HashMap<>();
循环浏览文本文件的其余部分,添加到Map
,然后将Map
添加到主Map
,以及一个密钥(我使用过{{1} }}):
User0, User1...
一旦你将其分解为步骤,它就会让生活更轻松。
答案 1 :(得分:0)
你可以这样做 -
br = new BufferedReader(new FileReader("file.txt"));
String line = br.readLine();
String headerLine = line;
List<String> headerList = Arrays.asList(headerLine.split(","));
List<List<String>> valueListList = new ArrayList<List<String>>();
while (line != null) {
line = br.readLine();
String valueLine = line;
if(valueLine != null) {
List<String> valueList = Arrays.asList(valueLine.split(","));
valueListList.add(valueList);
}
}
Map<String, List<String>> map = new HashMap<String, List<String>>();
for(int i=0; i<headerList.size();i++){
List<String> tempList = new ArrayList<String>();
for(int j=0; j<headerList.size();j++){
tempList.add(valueListList.get(i).get(i));
}
map.put(headerList.get(i), tempList);
}
System.out.println(map);
输出
{emptype=[contract, contract, contract, contract, contract],
startdate=[20-2-2018, 20-2-2018, 20-2-2018, 20-2-2018, 20-2-2018],
role=[Admin, Admin, Admin, Admin, Admin],
lastname=[kumar, kumar, kumar, kumar, kumar],
FirstName=[sreedhar, sreedhar, sreedhar, sreedhar, sreedhar]}