У меня есть текстовые файлы, которые имеют атрибуты, сохраненные в Строках. Эти строки имеют шаблон, как это:Получение значений из строки с узорами
[attributeName]:[value]
Я не могу обобщить [значение], потому что это может быть любого примитивного типа данных. Сохранение эффективных значений не является для меня проблемой, потому что это зависит от пользователя, который должен быть загружен атрибутом. Тот же файл не будет загружаться очень часто.
Теперь у меня есть 2 проблемы:
1) для какой-то причине программа, которая создает эти файлы иногда добавляет пространства вокруг: в некоторых атрибутах и [значение] может также содержать пробелы, так что я должен избавиться от те
2) Создание чтение этих атрибутов более производительным:
я пришел с этим методом:
public String getAttribute(File file, String attribute)
{
try
{
BufferedReader reader = new BufferedReader(new FileReader(file), 1024);
String line;
Pattern p = Pattern.compile(Pattern.quote(attribute), Pattern.CASE_INSENSITIVE);
while ((line = reader.readLine()) != null)
{
int i = line.indexOf(":");
if(line.charAt(i-1) == ' ')
line = line.substring(0,i-2) + line.substring(i);
if(line.charAt(i+1) == ' ')
line = line.substring(0,i) + line.substring(i+2);
if (p.matcher(line).find())
{
return line.replace(attribute, "").trim();
}
}
} catch (IOException e)
{
e.printStackTrace();
}
return null;
}
Howev er, этот метод, вероятно, будет одним из самых популярных моих приложений, поэтому я не могу оставить его настолько неэффективным, как сейчас, Спасибо за любую помощь!
Я думаю, что я не дал достаточно подробностей. Сохранение эффективных значений не является для меня проблемой, потому что это зависит от пользователя, который должен быть загружен атрибутом. Тот же файл не будет загружаться так часто, что мне нужно кэшировать значения. То, что я действительно хотел быть более постоянным, - это само чтение. Я отредактирую вопрос, чтобы быть более подходящим –
После прочтения кода во второй раз, я видел, что это может быть уже мое решение, которое лишь небольшая корректировка. Благодаря! –