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




Описание исходного текста приложения


Внутри метода main мы создали ссылки на выходной поток OutStream и входной поток InStream:

DataOutputStream OutStream;

DataInputStream  InStream;

Кроме того, мы предусмотрели массив для ввода информации из стандартного входного потока:

byte bKbdInput[] = new byte[256];

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

Создание выходного потока для записи строки выполняется следующим образом:

OutStream = new DataOutputStream(

  new BufferedOutputStream(

  new FileOutputStream("output.txt")));

Вначале с помощью конструктора создается объект класса FileOutputStream - поток, связанный с файлом output.txt. Далее на базе этого потока создается буферизованный поток типа BufferedOutputStream. И, наконец, на базе буферизованного потока создается форматированный поток OutStream класса DataOutputStream.

Заметим, что конструктор класса FileOutputStream создает файл output.txt, если он не существует, и перезаписывает существующий файл. Если вам нужно исключить случайную перезапись существующего файла, необходимо воспользоваться классом File, о котором мы еще будем рассказывать.

Для записи строки sOut в выходной поток мы вызываем метод writeBytes:

OutStream.writeBytes(sOut);

После записи выполняется сброс содержимого буферов и закрытие потока:

OutStream.flush();

OutStream.close();

При закрытии потока содержимое буферов сбрасывается автоматически. Мы вызвали метод flush только для иллюстрации.

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

catch(Exception ioe)

{

  System.out.println(ioe.toString());

}

На следующем этапе приложение открывает файл output.txt для чтения буферизованным форматированным потоком:

InStream = new DataInputStream(

  new BufferedInputStream(

  new FileInputStream("output.txt")));

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

Для чтения строки из входного потока мы применили метод readLine:

System.out.println(InStream.readLine());

Прочитанная строка сразу отображается на консоли, для чего она записывается в стандартный поток вывода.

После завершения работы со входным потоком мы закрываем его методом close:

InStream.close();

На последнем этапе приложение ожидает ввода с клавиатуры и затем завершает свою работу.




Содержание  Назад  Вперед