我有一個使用一種外部方法擴展TreeMap的類。 外部方法「打開」假設以下面的格式「word:meaning」從給定的文件中讀取行並將其添加到TreeMap中 - put(「word」,「meaning」)。即使密鑰存在,Java TreeMap <String,String>也會返回null
所以我閱讀RandomAccessFile的文件並把鑰匙值樹形圖,當我打印樹形圖中,我可以看到正確的鍵和值,例如:
{AAAA=BBBB, CAB=yahoo!}
但由於某些原因,當我得到(「AAAA」)我得到空。
爲什麼會發生這種情況,以及如何解決?
下面是代碼
public class InMemoryDictionary extends TreeMap<String, String> implements
PersistentDictionary {
private static final long serialVersionUID = 1L; // (because we're extending
// a serializable class)
private File dictFile;
public InMemoryDictionary(File dictFile) {
super();
this.dictFile = dictFile;
}
@Override
public void open() throws IOException {
clear();
RandomAccessFile file = new RandomAccessFile(dictFile, "rw");
file.seek(0);
String line;
while (null != (line = file.readLine())) {
int firstColon = line.indexOf(":");
put(line.substring(0, firstColon - 1),
line.substring(firstColon + 1, line.length() - 1));
}
file.close();
}
@Override
public void close() throws IOException {
dictFile.delete();
RandomAccessFile file = new RandomAccessFile(dictFile, "rw");
file.seek(0);
for (Map.Entry<String, String> entry : entrySet()) {
file.writeChars(entry.getKey() + ":" + entry.getValue() + "\n");
}
file.close();
}
}
爲了更好地提供幫助,請發佈[SSCCE](http://sscce.org/)。不要包括sigs。在問題中,它們是噪音。這個問題在鍵/值的文本中有一些非常奇怪的字符。 – 2013-03-18 19:06:10
請提供一個說明您的問題的最小,完整的例子。 – 2013-03-18 19:08:10
{ A A A A= B B B B, C A B= y a h o o !} ..這是什麼? – 2013-03-18 19:10:41