Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
 именем output.
txt:
DataOutputStream OutStream;
OutStream = new DataOutputStream(
  new BufferedOutputStream(
  new FileOutputStream("output.txt")));
   Аналогичным образом создается входной буферизованный поток для чтения 
форматированных данных из того же файла: 
DataInputStream InStream;
InStream = new DataInputStream(
  new BufferedInputStream(
  new FileInputStream("output.txt")));
   Исключения при создании потоков
   При создании потоков на базе классов FileOutputStream и FileInputStream 
могут возникать исключения FileNotFoundException, SecurityException, 
IOException.
   Исключение FileNotFoundException возникает при попытке открыть входной поток 
данных для несуществующего файла, то есть когда файл не найден.
   Исключение SecurityException возникает при попытке открыть файл, для 
которого запрещен доступ. Например, если файл можно только читать, а он 
открывается для записи, возникнет исключение SecurityException.
   Если файл не может быть открыт для записи по каким-либо другим причинам, 
возникает исключение IOException.
   Запись данных в поток и чтение данных из потока
   Для обмена данными с потоками можно использовать как простейшие методы write 
и read, так и методы, допускающие ввод или вывод форматированных данных. В 
зависимости от того, на базе какого класса создан поток, зависит набор 
доступных методов, предназначенных для чтения или записи данных. 
   Простейшие методы
   Создав выходной поток на базе класса FileOutputStream, вы можете 
использовать для записи в него данных три разновидности метода write, прототипы 
которых представлены ниже:
public void write(byte b[]);
public void write(byte b[], int off, int len);
public void write(int b);	
   Первый из этих методов записывает в поток содержимое массива, ссылка на 
который передается через параметр, начиная с текущей позиции в потоке. После 
выполнения записи текущая позиция продвигается вперед на число записанных байт, 
которое при успешном завершении операции равно длине массива (b.length).
   Второй метод позволяет дополнительно указать начальное смещение off 
записываемого блока данных в массиве и количество записываемых байт len.
   Третий метод просто записывает в поток один байт данных.
   Если в процессе записи происходит ошибка, возникает исключение IOException.
   Для входного потока, созданного на базе класса FileInputStream, определены 
три разновидности метода read, выполняющего чтение данных:
public int read();
public int read(byte b[]);
public int read(byte b[], int off, int len);
   Первая разновидность просто читает из потока один байт данных. Если 
достигнут конец файла, возвращается значение -1.
   Вторая разновидность метода read читает данные в массив, причем количество 
прочитанных данных определяется размером массива. Метод возвращает количество 
прочитанных байт данных или значение -1, если в процессе чтения был достигнут 
конец файла.
   И, наконец, третий метод позволяет прочитать данные в область массива, 
заданную своим смещением и длиной.
   Если при чтении происходит ошибка, возникает исключение IOException.
   Методы для чтения и записи форматированных данных
   Вместо того чтобы записывать в потоки и читать оттуда отдельные байты или 
массивы байт, программисты обычно предпочитают пользоваться намного более 
удобными методами классов DataOutputStream и DataInputStream, допускающими 
форматированный ввод и вывод данных.
   Вот, например, какой набор методов можно использовать для записи 
форматированных данных в поток класса DataOutputStream:
public final void writeBoolean(boolean v);
public final void writeByte(int v);
public final void writeBytes(String s);
public final void writeChar(int v);
public final void writeChars(String s);
public final void writeDouble(double v);
public final void writeFloat(float v);	
public final void writeInt(int v);
public final void writeLong(long v);
public final void writeShort(int v);
public final void writeUTF(String s);
   Хотя имена методов говорят сами за себя, сделаем замечания относительно 
применения некоторых из них.
 
<<-[Весь Текст]
Страница: из 275
 <<-