Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925

Как получить данные из файла .properties

03.06.2015, 11:33. Показов 3569. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
У меня есть класс который не наследуется от Activity. (Это класс фабрика)
Как можно открыть в нем InputStream для чтения файла .properties? (Куда положить файлик?)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.06.2015, 11:33
Ответы с готовыми решениями:

Получить значение из *.properties файла
Здравствуйте, я хочу получить значения из пропертис файла. По заданию физическое чтение файла должно происходить один раз, как сделать...

Как сохранить данные из CheckedListBox в Properties.Settings?
Подскажите как правильно в виде List сохранить и потом загрузить Добавлено через 13 часов 3 минуты может неправильно поставил вопрос...

.NET: Как лучше - хранить глобальные данные в Application или как static properties класса?
большой Web проект на ASP переводится на .NET. Куча глобальных данных раньше хранилась в Application. Данные типа dropdowlist values, code...

10
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
03.06.2015, 11:37
reisal78, в папку assets.
Java
1
2
3
4
5
6
7
8
9
10
Resources resources = getResources();
AssetManager assetManager = resources.getAssets();
 
try {
    InputStream inputStream = assetManager.open("config.properties");
    Properties properties = new Properties();
    properties.load(inputStream);
} catch (IOException e) {
    e.printStackTrace();
}
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
03.06.2015, 11:39  [ТС]
YuraAAA,
getResources() я так понимаю, что метод Context a? От чего мне унаследовать мой класс?
0
400 / 343 / 85
Регистрация: 17.10.2014
Сообщений: 1,015
03.06.2015, 11:44
reisal78, ну так передайте в него контекст при создании
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
03.06.2015, 11:59  [ТС]
Класс выглядит так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class FactoryLinks {
    public static final String TAG = "mc2";
    private static FactoryLinks instance;
    private Map<String, Object> links;
 
    public static synchronized FactoryLinks getInstance() {
        if (instance == null) {
            instance = new FactoryLinks();
        }
        return instance;
    }
 
    private FactoryLinks() {
        links = new HashMap<>();
 
 //       InputStream inputStream = ;
        Properties prop = new Properties();
        try {
 //           prop.load(inputStream);
            Log.i(TAG, "Файл конфигурации загружен");
        } catch (IOException e) {
            Log.e(TAG, "Ошибка загрузки файла конфигурации " + e.getMessage());
            e.printStackTrace();
        }
    }
 
 
    public Object getLink(String key) {
        if (!links.containsKey(key)) {
            throw new IllegalArgumentException("Key " + key + " not found in Factory");
        }
        return links.get(key);
    }
}
Добавлено через 15 минут
Идея у меня такая.
- стартую приложение.
- показываю пользователю стартовую активити.
- инициализирую фабрику
- в фабрике из файла пропертей получаю классы для которых нужно создать объекты.
- в фабрике создаю объекты классов, реализующих нужные мне интерфейсы и помещаю их в мапу.
- в дальнейшем в приложении, "дергаю" эти объекты из фабрики.

androbro, просто в синглтон передавать параметром что то... мне кажется это не лучшая идея =)
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
03.06.2015, 12:02
Лучший ответ Сообщение было отмечено reisal78 как решение

Решение

reisal78,
1. Создайте класс TheApplication.java и унаследуйте его от Application класса
2. Пропишите его как name в тэге <application в файле манифеста.
3. TheApplication сделайте singleton
4. Получите контекст из любого места Вашей программы с помощью TheApplication.getInstance().getApplicat ionContext()

Добавлено через 1 минуту
Цитата Сообщение от reisal78 Посмотреть сообщение
public static synchronized FactoryLinks getInstance()
Cинхронизация метода не самое лучшее решение. Если у Вас есть шанс одновременного вызова из нескольких потоков, можно использовать что-то типа double check-lock singleton
2
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
03.06.2015, 12:36  [ТС]
Цитата Сообщение от YuraAAA Посмотреть сообщение
Cинхронизация метода не самое лучшее решение. Если у Вас есть шанс одновременного вызова из нескольких потоков, можно использовать что-то типа double check-lock singleton
Я бы сказал "не самое быстрое решение"...
Спасибо за совет

Добавлено через 19 минут
Цитата Сообщение от YuraAAA Посмотреть сообщение
3. TheApplication сделайте singleton
С приватным конструктором не работает.
Но если я правильно разобрался с жизненным циклом андройд приложений, то объект Application будет создан всего один при старте приложения?
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
03.06.2015, 13:38
reisal78, да, совершенно верно. Забыл упомянуть, это не совсем "классический" синглетон.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class TheApplication extends Application {
    private static TheApplication sApplication;
 
    public static TheApplication getInstance() {
        return sApplication;
    }
 
    @Override
    public void onCreate() {
        super.onCreate();
        sApplication = this;
    }
}
0
400 / 343 / 85
Регистрация: 17.10.2014
Сообщений: 1,015
03.06.2015, 13:51
YuraAAA, если не составить труда выскажите Ваши соображения по ситуации:
у меня есть ряд так сказать параметров(типа user_id, user_fio итд.) которые нужны в некоторых activity.
я каждый раз дергаю их из sharedPreference.
может быть целесообразней воспользоватся штукой которую Вы привели?и живет такой "синглтон" на протяжении всего ЖЦ приложения?
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
03.06.2015, 14:22
androbro, Да, это вполне нормальный вариант. Вы можете хранить их в инстансе аппликейшена.
Цитата Сообщение от androbro Посмотреть сообщение
и живет такой "синглтон" на протяжении всего ЖЦ приложения?
да
1
400 / 343 / 85
Регистрация: 17.10.2014
Сообщений: 1,015
03.06.2015, 14:47
YuraAAA, ок, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.06.2015, 14:47
Помогаю со студенческими работами здесь

Как получить данные из файла
Первым элементов файла должно быть кол-во меценатов,а остальная часть состоять из пар строк,в которых первая строка содержит имя,а вторая -...

Как получить данные из файла *.xls
Друзья, помогите кто может, еще лучше примерчик.

Как получить данные с другого файла?
Добрый день Есть сайт там например http:\www.aspRead.net который защищен сертификатом. После того как принимаю условия сертификата то...

Как получить нужные данные из XML файла?
Пример xml: &lt;?xml version=&quot;1.0&quot;?&gt; &lt;Users&gt; &lt;ADMIN&gt; &lt;pass&gt;123321&lt;/pass&gt; &lt;access&gt;adm&lt;/access&gt; &lt;block&gt;N&lt;/block&gt; ...

Как получить исходные данные из 10-й строки файла?
При написании консольного приложения на visual-studio, возникла проблема, мне надо получить исходные данные из 10 строки файла text1.txt,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru