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

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

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
оту приложений с потоками, так как при ее 
использовании сокращается количество обращений к системе ввода/вывода. Вы 
можете постепенно в течении дня добавлять в поток данные по одному байту, и 
только к вечеру эти данные будут физически записаны в файл на диске.
   Во многих случаях, однако, приложение должно, не отказываясь совсем от 
буферизации, выполнять принудительную запись буферов в файл. Это можно сделать 
с помощью метода flush.
   Приложение StreamDemo
   Приложение StreamDemo было создано нами специально для того чтобы 
продемонстрировать наиболее распространенный способ работы с файлами через 
буферизованные форматированные потоки.
   Действия, выполняемые этим приложением, достаточно просты. Вначале 
приложение выводит на консоль приглашение для ввода строки. Затем введенная 
строка записывается в файл через выходной буферизованный форматированный поток. 
После этого созданный файл читается через входной буферизованный поток. Его 
содержимое (введенная ранее строка) отображается на экране.
   Исходный текст приложения
   Исходный текст приложения StreamDemo представлен в листинге 2.2.
Листинг 2.2. Файл StreamDemo\StreamDemo.java
// =========================================================
// Демонстрация использования потоков для работы с файлами
//
// (C) Фролов А.В, 1997
//
// E-mail: [email protected]
// WWW:    http://www.glasnet.ru/~frolov
//            или
//         http://www.dials.ccas.ru/frolov
// =========================================================
import java.io.*;

public class StreamDemo
{
  // -------------------------------------------------------
  // main
  // Метод, получающий управление при запуске приложения
  // -------------------------------------------------------
  public static void main(String args[])
  {
    // Выходной поток
    DataOutputStream OutStream;

    // Входной поток
    DataInputStream  InStream;

    // Массив для ввода строки с клавиатуры
    byte bKbdInput[] = new byte[256];

    // Введенная строка, которая будет записана в поток
    String sOut;

    // Выполняем попытку вывода на консоль строки 
    // приглашения
    try
    {
      // Выводим строку приглашения
      System.out.println("Hello, Java!\n" + 
        "Enter string and press ...");
      
      // Читаем с клавиатуры строку для записи в файл
      System.in.read(bKbdInput);

      // Преобразуем введенные символы в строку типа String
      sOut = new String(bKbdInput, 0);
    }
    catch(Exception ioe)
    {
      // При возникновении исключения выводим его описание
      // на консоль
      System.out.println(ioe.toString());
    }
    
    // Выполняем попытку записи в выходной поток
    try
    {
      // Создаем выходной буферизованный поток данных
      OutStream = new DataOutputStream(
        new BufferedOutputStream(
          new FileOutputStream("output.txt")));

      // Записываем строку sOut в выходной поток
      OutStream.writeBytes(sOut);

      // Сбрасываем содержимое буфера вывода
      OutStream.flush();

      // Закрываем выходной поток
      OutStream.close();
    }
    catch(Exception ioe)
    {
      System.out.println(ioe.toString());
    }
    
    // Выполняем попытку чтения из файла
    try
    {
      // Создаем входной буферизов
 
<<-[Весь Текст]
Страница: из 275
 <<-