Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Microsoft Visual J++. Создание приложений и аплетов на языке Java. Часть 2

© Александр Фролов, Григорий Фролов
Том 32, М.: Диалог-МИФИ, 1997, 288 стр.

[Назад] [Содеожание] [Дальше]

Приложение Standard

Приложение Standard демонстрирует способы работы со стандартными потоками Java. Это консольное приложение, а не аплет.

При запуске приложение Standard выводит строку Hello, Java! И приглашение для ввода строки (рис. 2.4).

Рис. 2.4. Консольное окно приложения Standard

Если ввести любую текстовую строку и нажать клавишу <Enter>, введенная строка появится на консоли. Далее появится сообщение о том, что для завершения работы приложения нужно снова нажать клавишу <Enter>.

Исходный текст приложения

Исходный текст приложения приведен в листинге 2.1.

После трансляции исходного текста вы можете запустить его на выполнение непосредственно из среды разработки приложений Microsoft Visual J++. При этом, когда на экране появится диалоговая панель Information For Running Class (рис. 2.5), вы должны указать в поле Class file name имя Standard, а в поле Run project under включить переключатель Stand-alone interpreter.

Рис. 2.5. Заполнение диалоговой панели Information For Running Class

При этом приложение будет запущено под управлением автономного интерпретатора Java jview.exe.

Листинг 2.1. Файл Standard\Standard.java


// =========================================================
// Демонстрация использования стандартных потоков
//
// (C) Фролов А.В, 1997
//
// E-mail: frolov@glas.apc.org
// WWW:    http://www.glasnet.ru/~frolov
//            или
//         http://www.dials.ccas.ru/frolov
// =========================================================
import java.io.*;

public class Standard
{
  // -------------------------------------------------------
  // main
  // Метод, получающий управление при запуске приложения
  // -------------------------------------------------------
  public static void main(String args[])
  {
    // Массив для ввода строки с клавиатуры
    byte bKbdInput[] = new byte[256];

    // Введенная строка
    String sOut;

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

      // Преобразуем введенные символы в строку типа String
      sOut = new String(bKbdInput, 0);

      // Выводим только что введенную строку на консоль
      System.out.println(sOut);
    }
    catch(Exception ioe)
    {
      // При возникновении исключения выводим его описание
      // на консоль
      System.err.println(ioe.toString());
    }

    // Ожидаем ввода с клавиатуры, а затем завершаем 
    // работу приложения
    try
    {
      System.out.println(
        "Press <Enter> to terminate application...");

      System.in.read(bKbdInput);
    }
    catch(Exception ioe)
    {
      System.err.println(ioe.toString());
    }
  }
}

Описание исходного текста

Структура приложения Standard очень проста. В нем определен один класс с именем Standard типа public, и один метод с имененм main:


public class Standard
{
  public static void main(String args[])
  {
    . . .
  }
}

Напомним, что имена класса и файла .class должны совпадать.

Сразу после запуска автономного приложения Java управление передается функции main.

Внутри этой функции мы определили массив bKbdInput типа byte и строку sOut:


byte bKbdInput[] = new byte[256];
String sOut;

Созданный оператором new массив имеет размер 256 байт и предназначен для хранения строки, введенной пользователем при помощи клавиатуры. В дальнейшем содержимое этого массива преобразуется в строку sOut.

Первое, что делает наше приложение после создания массива, это вывод на консоль текстовой строки приглашения:


System.out.println("Hello, Java!\n" + 
  "Enter string and press <Enter>...");

Здесь вызывается метод println для статического объекта out класса PrintStream, который, как вы знаете, определен в классе System.

На следующем этапе приложение читает из стандартного потока ввода in, вызывая для этого метод read:


System.in.read(bKbdInput);

Стандартный поток ввода связан с клавиатурой, поэтому приложение перейдет в состояние ожидания до тех пор, пока пользователь не введет текстовую строку, нажав после чего клавишу <Enter>.

Введенная строка отображается на консоли, для чего она записывается в стандартный поток вывода методом println:


System.out.println(sOut);

При выполнении операций с потоками ввода или вывода могут возникать исключения, поэтому в нашем приложении предусмотрены обработчики исключений:


catch(Exception ioe)
{
  System.err.println(ioe.toString());
}

При возникновении любого исключения в стандартный поток вывода сообщений об ошибках записывается текстовая строка названия класса возникнувшего исключения.

Для того чтобы вы смогли посмотреть на результаты работы приложения, после отображения на консоли введенной строки приложение вновь вызывается метод read для стандартного потока ввода. Для завершения работы приложения пользователь должен нажать клавишу <Enter>.

[Назад] [Содеожание] [Дальше]