Файловый ввод-вывод в приложениях

Файловый ввод-вывод В языке Java организован на основе потоков, т.е. Java не поддерживает небуферизированный ввод-вывод информации, что значительно усложняет осуществление простых операций чтения/записи файла но одновременно упрощает операции чтения/записи объектов. Существует два основных файловых потока: поток ввода FileInputStream и поток вывода FileOutputStream.

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

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

try

{

FileInputStream is=new FileInputStream(имя файла);

// Операции чтения файла

is.close();

}

catch(IOException e)

{

System.out.println(e.getMessage());

}

А для организации записи:

try

{

FileOutputStream os=new FileOutputStream(имя файла);

// Операции записи файла

os.close();

}

catch(IOException e)

{

System.out.println(e.getMessage());

}

 

Использование данных объектов непосредственно для чтения и записи достаточно неудобно, т.к. Потоки FileInputStream и FileOutputStream имеют только функции чтения и записи байтовых массивов, а язык Java крайне критически относиться к преобразованию типов. Для упрощения работы с в язык Java текстовыми файлами были добавлены классы чтения и записи массивов символов. Для чтения текстовой информации был создан класс InputStreamReader, а для записи OutputStreamWriter.

Использование класса InputStreamReader для чтения текста имеет следующий вид:

try

{

FileInputStream is=new FileInputStream(имя файла);

InputStreamReader isr=new InputStreamReader(is);

// Операции чтения файла

isr.close();

is.close();

}

catch(IOException e)

{

System.out.println(e.getMessage());

}

А класса OutputStreamWriter для организации записи:

try

{

FileOutputStream os=new FileOutputStream(имя файла);

OutputStreamWriter osw=new OutputStreamWriter(os);

// Операции записи файла

osw.close();

os.close();

}

catch(IOException e)

{

System.out.println(e.getMessage());

}

 

Из данного примера видно, что классы InputStreamReader и OutputStreamWriter не являются непосредственно классами чтения/записи, а представляют собой лишь классы преобразователи текстовых массивов в байтовые и обратно.

Наиболее широкое распространение при программировании на языке Java получили классы чтения записи объектов. Это ObjectInputStream – класс чтения объектов и ObjectOutputStream – класс записи объектов.

Использование класса ObjectInputStream для чтения текста имеет следующий вид:

try

{

FileInputStream is=new FileInputStream(имя файла);

ObjectInputStream isr=new ObjectInputStream(is);

// Операции чтения файла

isr.close();

is.close();

}

catch(IOException e)

{

System.out.println(e.getMessage());

}

А класса ObjectOutputStream для организации записи:

try

{

FileOutputStream os=new FileOutputStream(имя файла);

ObjectOutputStream osw=new ObjectOutputStream (os);

// Операции записи файла

osw.close();

os.close();

}

catch(IOException e)

{

System.out.println(e.getMessage());

}

 

Так же как и классы чтения/записи текста, классы чтения/записи объектов представляют собой преобразователи информации объектов в вид массива байт, который далее записывается на диск или читается с него с помощью классов FileInputStream и FileOutputStream.

 

 








Дата добавления: 2016-01-03; просмотров: 516;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.