Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория экзамен.doc
Скачиваний:
25
Добавлен:
29.05.2015
Размер:
516.61 Кб
Скачать

Класс DataInputStream (производный от InputStream)

простейший класс для потокового (последовательного) чтения данных стандартных типов из файла. Объект этого класса создается на основе объектаInputStream, т.е., например,

DataInputStream myfile = new DataInputStream( new FileInputStream("data.txt"));

Для всех стандартных типов данных определены методы:

readInt() readFloat() readChar() и т.п.

читает значение указанного типа

Для чтения не-латинских букв можно порекомендовать функцию readUTF.

Класс DataOutputStream (производный от OutputStream)

простейший класс для потоковой (последовательной) записи данных стандартных типов в файл. Объект этого класса создается на основе объекта OutputStream, т.е., например,

DataOutputStream myfile = new DataOutputStream( new FileOutputStream("data.txt"));

Для всех стандартных типов данных определены методы:

writeInt(int число) writeFloat(float число) writeChar(char символ) writeChars(String строка) и т.п.

печатает значение указанного типа

Для печати не-латинских букв можно порекомендовать функцию writeUTF. 

Классы BufferedInputStream и BufferedOutputStream

используют буферизованный ввод-вывод, поэтому работают более эффективно, чем, например, FileInputStream и FileOutputStream

Класс RandomAccessFile

класс для работы с файлами произвольного доступа, используется как для чтения, так и для записи. Объект этого класса cоздается на основе объекта File или по имени файла в файловой системе. Конструкторы:

RandomAccessFile( String имя_файла, String режим ) RandomAccessFile( File файл, String режим )

параметр "режим" может принимать значения:  "r"- только для чтения и"rw"- для чтения и записи

Для всех стандартных типов данных определены методы:

readInt() readFloat() readChar() и т.п.

читает значение указанного типа

writeInt(int число) writeFloat(float число) writeChar(char символ) writeChars(String строка) и т.п.

печатает значение указанного типа

Для смещения внутреннего указателя в любое место файла используется метод

seek(long смещение)

смещение задается в байтах от начала файла

Следующие 6 классов используются для работы с текстовыми файлами.

Классы InputStreamReader и OutputStreamWriter (производные от Reader и Writer)

простейшие классы для чтения/записи из/в текстовый файл. Объекты этих классов создаются на основе объектов InputStream и OutputStream. Например,

InputStreamReader myfile =

new InputStreamReader( new FileInputStream("data.txt"));

OutputStreamWriter myfile =

new OutputStreamWriter( new FileOutputStream("data.txt"));

Оба класса имеют функцию getEncoding для получения текущей кодовой страницы (cp1251 - кодовая страница для русского Windows), а также конструкторы, которые позволяют задать нужную кодовую страницу в качестве второго параметра.  Имеют только методы read и write для чтения/записи символа (строки символов). 

Классы FileReader и FileWriter

(производные от InputStreamWriter и OutputStreamWriter)

отличаются от InputStreamWriter и OutputStreamWriter тем, что объекты этих классов cоздаются на основе объекта File или по имени файла в файловой системе, т.е.

FileReader myfile = new FileReader("data.txt");

FileWriter myfile = new FileWriter("data.txt");

а также не имеют конструктора с заданием кодовой страницы. 

Классы BufferedReader и BufferedWriter

(производные от Reader и Writer)

используются для буферизованного ввода-вывода данных, поэтому их использование более эффективно, чем, например, FileReader и FileWriter. Создаются на основе объектов Reader и Writer, например,

BufferedReader myfile = new BufferedReader ( new FileReader("data.txt"));

BufferedWriter myfile = new BufferedWriter ( new FileWriter("data.txt"));

В классе BufferedReader определен метод readLine(), который позволяет читать строку символов. 

20. Сериализация и десериализация объектов

Сериализация это процесс сохранения состояния объекта в последовательность байт; десериализация это процесс восстановления объекта, из этих байт. Java Serialization API предоставляет стандартный механизм для создания сериализуемых объектов. В этой статье вы увидите как сериализовать объект, и почему сериализация иногда необходима. Вы узнаете об алгоритме сериализации используемом в Java и увидите пример, который иллюстрирует сериализованый формат объекта. В конце у вас должно сложиться чёткое представление о том, как работает алгоритм сериализации, а так же каким образом представлены части объекта в сериализованном виде.