用java读取txt文件用hashmap后进行管理等

用java读取以下类似的txt文件,下面只是一部分,创建hashmap后进行管理后可以行进搜索,查看等Aad2AadhiHaqeeqat,AadhaFasana1990d... 用java读取以下类似的txt文件,下面只是一部分,创建hashmap后进行管理后可以行进搜索,查看等
Aad2 Aadhi Haqeeqat, Aadha Fasana 1990 dil3 - CD
Aad3 Aadhi Mimansa 1991 apu1 ash29 -
Aad4 Aadmi Khilona Hai 1993 jom1 jee5 -
Aag1 Aag 1994 kra2 gov1;shi26;son2 ad
Aag2 Aag Aandhi Aur Toofan 1994 kan33 - -
Aag3 Aa Gale Lag Jaa 1994 ham2 jug1 -

请教下各位高手了,刚学没多久需要具体详细整套完整的code,谢谢
满意者追加100分
展开
 我来答
ward502
推荐于2016-08-30 · TA获得超过1185个赞
知道大有可为答主
回答量:794
采纳率:0%
帮助的人:1362万
展开全部
建议不同名字之间用 =号区别,比较好分割 空格的话有可能同一名字直接都有空格。如文本格式 Aag3=Aa Gale Lag Jaa=1994=ham2=jug1=-
这里说的不是很清楚,我就简单写下,以后可以用类属性封装更好,希望对你有启示:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Test{
private Map<String,Object> map = new HashMap<String, Object>();
public Test(){
this.read();
}
public void read(){
String line = "";
try {
BufferedReader br = new BufferedReader(new FileReader("d:/Test.txt"));
line = br.readLine();
while(line!=null){
if(!"".equals(line.replaceAll(" ", ""))){
String[] text=line.split("=");//字符串分割 = 号分割
StringBuffer value = new StringBuffer();
for(int i=1;i<text.length;i++){
value.append(text[i]).append("\t");
}
map.put(text[0], value.toString());
}
line = br.readLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void search(String keyName){
Set<String> keySet = map.keySet();//获取key 的set集合
Iterator<String> it = keySet.iterator();//获取iterator遍历
while(it.hasNext()){
String key = it.next();
if(key.equals(keyName)){
show(key);
}
}
}
public void show(String keyName){
if(keyName!=null){
System.out.println(keyName+"\t"+map.get(keyName));
}else{
Set<String> keySet = map.keySet();
Iterator<String> it = keySet.iterator();
String key = "";
while(it.hasNext()){
key = it.next();
System.out.println(key+"\t"+map.get(key));
}
}
}
public static void main(String[]args){
Test test = new Test();
String key = "";
Scanner scan = new Scanner(System.in);//获取输入
while(true){//循环
System.out.println("*******************************");
System.out.println("1.显示所有 2.查询 9.退出");
System.out.println("*******************************");
int input = scan.nextInt();
switch(input){
case 1:{
test.show(null);
break;
}
case 2:{
System.out.print("请输入关键字:");
key = scan.next();
test.search(key);
break;
}
case 9:System.exit(1);
default:break;
}
}
}

}
追问
还想问你下我的作业还有以下的要求,实际的出来的菜单是这样
1显示信息 (计算出一共有几部电影,分别计算出以下年间的电影总数1990~1999,2000~2009, 2010~2019)
2显示电影信息(要求输入完整的电影名字后显示演员年份导演等)
3电影关键字查询(输入关键字,显示有关键字的列表)
4显示演员信息(要求输入完整的演员名后显示出演员演过的电影列表
5演员关键字查询(输入关键字显示符合关键字的演员列表)
txtdown99
2011-11-06 · TA获得超过1223个赞
知道小有建树答主
回答量:421
采纳率:100%
帮助的人:153万
展开全部
请具体说说,需要用到哪些东西。比如需要数据库吗?mysql能用吗?需要swing界面吗?还是html界面?还是只是单纯的控制台操作。
追问
只是单纯的控制台操作。就是cmd上的简单的操作。你有QQ什么我可以+你问你么?刚学没多久所以有蛮多问题的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xinfei0804
2011-11-07 · TA获得超过1637个赞
知道小有建树答主
回答量:547
采纳率:0%
帮助的人:318万
展开全部
加我吧,291901404,我也是一步一个脚印走过来的,得到不少前辈的帮助,理应把这种分享的习惯传承下去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
924930521
2011-11-06
知道答主
回答量:1
采纳率:0%
帮助的人:1694
展开全部
额........
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式