Читать курсовая по информатике, вычислительной технике, телекоммуникациям: "Java: Средства построения отчётов для Java-приложений" Страница 7
section,String line)
{
int equalIndex = line.indexOf("=");
if( equalIndex > 0 )
{
String name = section+'.'+line.substring(0,equalIndex).trim();
String value = line.substring(equalIndex+1).trim();
iniProperty.put(name,value);
}
}
public String getProperty(String section,String var,String def)
{
return iniProperty.getProperty(section+'.'+var,def);
}
public int getProperty(String section,String var,int def)
{
String sval = getProperty(section,var,Integer.toString(def));return Integer.decode(sval).intValue();
}
public boolean getProperty(String section,String var,boolean def)
{
String sval = getProperty(section,var,def ? "True":"False");
return sval.equalsIgnoreCase("Yes") || sval.equalsIgnoreCase("True");
}
}
Файлы Properties.
Этот формат распространён в Unix-мире. Он ещё проще ini-файлов, т.к. в нём отсутствует понятие секций - всё состоит из ключей и значений. Пример типичного файла:
# Database configuration
Database.Driver=sun.jdbc.odbc.JdbcOdbcDriver
Database.DataURL=jdbc:odbc:MyDatabase
Database.Prop.user=user
Database.Prop.password=password
В Java есть готовый класс для чтения/записи таких файлов (java.util.Properties), но с ним есть некоторые проблемы. Во первых для чтения невозможно задать кодировку файла, а это означает проблемы с русскими буквами. Во вторых стандартная функция записи сохраняет данные в порядке следования хэш-значений ключей, что значит - как ей больше понравится. Но это тоже легко разрешимо - достаточно написать свою читалку/писалку.
XML-файлы.
Этот формат подходит для многих целей, в том числе и для хранения настроек. XML-формат ориентирован на древовидные структуры, что довольно естественым образом отображается на объекты. Пример типичного файла:
user
password
Для чтения и записи таких файлов предназначены специальные библиотеки - так называемые XML-парсеры. Таких парсеров уже сделано довольно много, так что писать его самому нет большого смысла - достаточно лишь подобрать подходящий. Для парсеров было разработано два стандартных программных интерфейса - событийный (SAX) и иерархический (DOM). Есть также и парсеры со своим интерфейсом. Размер jar-а с парсером может варьироваться от нескольких килобайт до мегабайта - в зависимости от поддерживаемых интерфейсов и возможностей.
Для XML также написано несколько библиотек для универсального сохранения (сериализации) объектов в файлах XML. Такие библиотеки позволяют отделить алгоритм сохранения от самого объекта, а это, как уже упоминалось, имеет много плюсов.
Сериализация.
Под термином "сериализация" понимают запись содержимого объекта в поток двоичных данных. Обычно имеется в виду универсальный алгоритм, реализуемый классами java.io.ObjectOutputStream и java.io.ObjectInputStream. Пользоваться ими просто настолько, насколько это вообще возможно - обычно достаточно лишь отметить в классе поддержку при помощи интерфейса Serializable и отметить ключевым словом transient те поля объекта, которые сохранять не нужно. Собсно и всё. :-) Пример:
public class SerialObject implements java.io.Serializable
{
private String name;
private transient int state;
public SerialObject() {}
public SerialObject(String n) { name = n; }
public String getName() { return name; }
public void setState(int s) { state = s; }
}
Запись объектов:
SerialObject o = ...;
OutputStream os = ...;
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(o);
Чтение объектов:
InputStream is = ...;
ObjectInputStream ois = new ObjectInputStream(is);
SerialObject o = (SerialObject)ois.readObject();
Использование сериализации - это один из самых простых вариантов по реализации, но и у него есть свои недостатки. Получаемые файлы являются двоичными, а значит в текстовом редакторе их уже не подправить
Похожие работы
Интересная статья: Основы написания курсовой работы

(Назад)
(Cкачать работу)