Как вернуть карту из .txt файла используя Свойства? - PullRequest
2 голосов
/ 12 мая 2010

Это код для записи хеш-таблицы в файл .txt!

public static void save(String filename, Map<String, String> hashtable) throws IOException {
    Properties prop = new Properties();
    prop.putAll(hashtable);
    FileOutputStream fos = new FileOutputStream(filename);
    try {
       prop.store(fos, prop);
    } finally {
       fos.close();
    }
}

Как мы получаем хеш-таблицу из этого файла? Спасибо

Ответы [ 2 ]

4 голосов
/ 12 мая 2010

Точно так же безобразно:

@SuppressWarnings("unchecked")
public static Map<String, String> load(String filename) throws IOException {
    Properties prop = new Properties();
    FileInputStream fis = new FileInputStream(filename);
    try {
        prop.load(fis);
    } finally {
        fis.close();
    }
    return (Map) prop;
}
2 голосов
/ 12 мая 2010

Использование Properties.load()

пример кода:

public static Properties load(String filename) {
    FileReader reader = new FileReader(filename);
    Properties props = new Properties(); // The variable name must be used as props all along or must be properties
    try{
        props.load(reader);
    } finally {
        reader.close();
    }
    return props;
}

Edit:

Если вы хотите вернуть карту, используйте что-то вроде этого. (ToString должен избегать приведения - вы можете привести к String, если хотите)

public static Map<String, String> load(String filename) {
    FileReader reader = new FileReader(filename);
    Properties props = new Properties();
    try {
        props.load(reader);
    } finally {
        reader.close();
    }
    Map<String, String> myMap = new HashMap<String, String>();
    for (Object key : props.keySet()) {
        myMap.put(key.toString(), props.get(key).toString());
    }
    return myMap;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...