java 文件读写(追加20分吧)

txt文件中的内容如下(以类型表示)
string int
string int
string int
要求通过string 找到int

然后可以在最后增加同样的东西 string int

思路写一下:
追加内容的方法
boolean addInfo(String str,Integer ints){
//讲传入的字符串与数字组织成一个字符串,例如str+" "+ints;
//创建文件IO流,讲改字符串写入到文件中,最后加上换行,建议使用字符流来写,方便些
//出现异常return false
return true;
}
查找操作
Integer getIntByString(String str){

//使用字符流从文件中一行一行的读取内容
//从末尾查找第一个" ",可以得到它的索引,假定为idx
//查找到后,下面的操作分两种
//1.该操作只使用1次
//使用readLine()方法去读取内容,要循环的啊
//1.1使用取子串方法,取出读取的字符串从0开始到idx结束的所有内容getStr
//1.2使用你传入的参数与getStr进行equals,如果false就continue
//1.3如果true就使用取子串方法substring从idx+1取到末尾得到getInt
//1.4Integer.paseInt(getInt)就是你要的东西了,然后break;
//2.该查找操作使用多次
//创建一个HashMap的对象hm,该对象是一个类变量(你文件中不会有相同的字符串吧,如果有我就先汗一个)
//进行循环,如上操作,取出的字符串假定为s1,数字假定的s2(最好设计成Integer类型的),不需要判断直接讲其使用HashMap的put(s1,s2)放入到集合中
//需要查找什么直接使用hm.get(str)就可以得到值了

第二种方式就是传说中的桌面级汉译英字典的制作方式

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-15
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Map;

public class Test {
public static void main(String[] args) throws Exception {
write("aa.txt", "张三", 111111);
write("aa.txt", "李四", 222222);
System.out.println(read("aa.txt", "李四"));
}

public static void write(String filename, String string, int i)
throws Exception {
BufferedWriter bw = new BufferedWriter(new FileWriter(
new File(filename), true));
bw.write(string + " " + i + "\r\n");
bw.flush();
bw.close();
}

public static int read(String filename, String string) throws Exception {
BufferedReader br = new BufferedReader(new FileReader(
new File(filename)));
Map<String, Integer> map = new HashMap<String, Integer>();
String line = "";
String[] temp = null;
while ((line = br.readLine()) != null) {
temp = line.split(" ");
map.put(temp[0], Integer.parseInt(temp[1]));
}
br.close();
return map.get(string);
}
}本回答被提问者采纳
第2个回答  2009-04-15
楼主请举个例子..这个不够明白...不好理解..怎么写呢?
第3个回答  2009-04-15
string里包含空格吗