ASK CORE EXT Class Properties docs ---------------------------------------------------------------------------------------------------------------- // 1. Info // 3. Mетоды класса Properties // 11. Примеры использования класса Properties // 12. Вычитывание из файла с расширением типа .properties // 13. Пример из BaseJava // 14. Вычитывание из файла в зависимости от расширения файла ---------------------------------------------------------------------------------------------------------------- // 1. Info -- Класс Properties унаследован от Hashtable<Object,Object> а это -- тот же HashMap, просто все методы его синхронизированы -- Его даже можно рассматривать как HashTable, который умеет загружать себя из файла Класс Properties -- Класс в Java, который имеет методы для вычитывания данных из файла properties // Класс Properties ---------------------------------------------------------------------------------------------------------------- // 3. Mетоды класса Properties get() getProperty() load() loadFromXML() stringPropertyNames() get() // Object get(Object key) // Возвращает значение по ключу. Метод унаследован от HashTable getProperty() // String getProperty(String key) // Возвращает значение свойства (строку) по ключу getProperty() // String getProperty(String key, String defaultValue) // Возвращает значение свойства по ключу или defaultValue, если такого ключа нет load() // void load(Reader reader) // Загружает свойства из файла, представленного объектом Reader load() // void load(InputStream inStream) // Загружает свойства из файла, представленного объектом InputStream loadFromXML() // void loadFromXML(InputStream in) // Загружает свойства из XML-файла stringPropertyNames() // Set<String> stringPropertyNames() // Возвращает список всех ключей ---------------------------------------------------------------------------------------------------------------- // 12. Вычитывание из файла с расширением типа .properties File file = new File("c:/data.properties"); Properties properties = new Properties(); properties.load(new FileReader(file)); // Пройти по всем ключам и печатать все их значения на консоль for (String key : properties.stringPropertyNames()) { System.out.println(properties.get(key)); } // Класс Properties можно использовать как HashMap. // Класс Properties унаследован от Hashtable, а это – тот же HashMap, просто все методы его синхронизированы. ---------------------------------------------------------------------------------------------------------------- // 13. Пример из BaseJava File file = new File("c:/data.properties"); Properties properties = new Properties(); properties.load(new FileReader(file)); String email = properties.getProperty("email"); String directory = properties.getProperty("directory"); // Т.е. фактически нужно выполнить всего две операции : загрузить в объект Properties данные из какого-нибудь файла ( метод load() ), а затем получить эти свойства с помощью метода getProperty() // Получить числовое значение из объекта Properties int maxFileSize = Integer.parseInt(properties.getProperty("max.size", "10000")); ---------------------------------------------------------------------------------------------------------------- // 14. Вычитывание из файла в зависимости от расширения файла -- Метод считывает свойства из переданного ему файла fileName -- Расширение файла fileName может быть xml, или какое то другое, или расширения может не быть -- Если ошибка то будет возвращаться пустой объект public Properties getProperties(String fileName) { Properties properties = new Properties(); int pos = fileName.lastIndexOf("."); String ext = pos >= 0 ? fileName.substring(pos) : ""; try { switch (ext) { case ".xml": { FileInputStream fileInputStream = new FileInputStream(fileName); properties.loadFromXML(fileInputStream); fileInputStream.close(); break; } case ".txt": { FileReader fileReader = new FileReader(fileName); properties.load(fileReader); fileReader.close(); break; } default: { FileInputStream fileInputStream = new FileInputStream(fileName); properties.load(fileInputStream); fileInputStream.close(); break; } } } catch (Exception e) { System.out.println(e.getMessage()); return properties; } return properties; } |