将文件的片段放入HashMap - Java

时间:2012-08-08 05:48:01

标签: java file hashmap

我正在阅读一个文件并希望将文件存储到某些单词,在此示例中为“是”进入HashMap of < Integer, document >.但是我被卡住了HashMap,这是我的列车想法。

BufferedReader in = new BufferedReader(new FileReader("filename.txt"));  
String line;     
int i = 0;
     while ((line = in.readLine()) != null) {  
       if (!line.startwith("yes");{
         //add line to hashMap[i]
         i++;
        }

  System.out.println(hashMap[i]);  
}  

如何在HashMap之前将文字添加到“是”?

3 个答案:

答案 0 :(得分:1)

使用HashMap存储具有唯一键的键值对。

你当然可以在某事上分歧:

split_line = line.split(delimiter);

并存储:

\** I am being unsafe here. You should probably check for null and type. *\
hashmap.put( new Integer(split_line[0]), split_line[1]);

但这是你想要做的吗?

答案 1 :(得分:0)

如果Map中的键将是0到n之间的整数,那么您不需要地图而是List。

 List<String> goodWords = new ArrayList<String>();
 while ((line = in.readLine()) != null) {  
       String[] words = line.split(" ");
       for (String str : words) {
           if (!"yes".equals(str)) {
               goodWords.add(str);
           }
       }
 }

答案 2 :(得分:0)

我真的不明白你想要在HashMap中存储什么。你能更具体一点吗?

以下是如何使用扫描仪进行操作 - 我更喜欢这一点,然后简单地逐行解析。

public class Main {
public static void main(String[] args) throws FileNotFoundException {
    StringBuilder responseBuilder = new StringBuilder();
    File file = new File("/Users/eugene/Desktop/MyFile.txt");
    Scanner scanner = new Scanner(file);
    scanner.useDelimiter("yes");
    while(scanner.hasNext()){
        responseBuilder.append(scanner.next());
        break;   
    }
    System.out.println(responseBuilder.toString());
}

}