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

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

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
utputStream(
  new BufferedOutputStream(
  new FileOutputStream("output.dat")));
   После знакомства с главой нашей книги, посвященной работе с потоками, эти 
строки не должны вызывать у вас никаких вопросов.
   Операция чтения данных из входного потока и записи в выходной поток 
выполняется в цикле:
while(true)
{
  int nReaded = is.read(buf);
  if(nReaded == -1)
    break;
  os.write(buf, 0, nReaded);
}
   Вначале для входного потока вызывается метод read. Он возвращает количество 
прочитанных байт данных или значение -1, если был достигнут конец потока. В 
последнем случае цикл прерывается.
   Принятые данные размещаются в массиве buf, откуда затем они записываются в 
выходной поток методом write. Мы записываем в выходной поток столько байт 
данных, сколько было считано.
   После того как файл будет принят и записан в выходной поток, мы закрываем 
оба потока:
is.close();
os.close();
   Приложение ShowChart
   Попробуем теперь на практике применить технологию передачи файлов из 
каталога сервера Web в аплет для локальной обработки. Наше следующее приложение 
с названием ShowChart получает небольшой текстовый файл с исходными данными для 
построения круговой диаграммы, содержимое которого представлено ниже:
10,20,5,35,11,10,3,6,80,10,20,5,35,11,10,3,6,80
   В этом файле находятся численные значения углов для отдельных секторов 
диаграммы, причем сумма этих значений равна 360 градусам. Наш аплет принимает 
этот файл через сеть и рисует круговую диаграмму, показанную на рис. 3.2.

Рис. 3.2. Круговая диаграмма, построенная на базе исходных данных, полученных 
через сеть
   Файл исходных данных занимает всего 49 байт, поэтому он передается по сети 
очень быстро. Если бы мы передавали графическое изображение этой диаграммы, 
статическое или динамическое, подготовленное, например, расширением сервера CGI 
или ISAPI, объем передаваемых по сети данных был бы намного больше.
   Исходные тексты приложения
   Исходные тексты приложения ShowChart приведены в листинге 3.3.
Листинг 3.3. Файл ShowChart\ShowChart.java
// =========================================================
// Рисование круговой диаграммы, данные для которой
// получены от сервера Web через сеть
//
// (C) Фролов А.В, 1997
//
// E-mail: [email protected]
// WWW:    http://www.glasnet.ru/~frolov
//            или
//         http://www.dials.ccas.ru/frolov
// =========================================================
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class ShowChart extends Applet
{
  // Адрес URL файла с данными для круговой диаграммы
  URL SrcURL;

  // Содержимое этого файла
  Object URLContent;

  // Код ошибки
  int errno = 0;

  // -------------------------------------------------------
  // getAppletInfo
  // Метод, возвращающей строку информации об аплете
  // -------------------------------------------------------
  public String getAppletInfo()
  {
    return "Name: ShowChart\r\n" +
      "Author: Alexandr Frolov\r\n" +
      "E-mail: [email protected]" +
      "WWW:    http://www.glasnet.ru/~frolov" +
      "Created with Microsoft Visual J++ Version 1.0";
  }

  // -------------------------------------------------------
  // init
  // Метод, получающий управление при инициализации аплета
  // -------------------------------------------------------
  public void init()
  {
    try
    {
      // Создаем объект класса URL для файла с данными
      // для круговой диаграммы
      SrcURL = new URL("http://frolov/ch
 
<<-[Весь Текст]
Страница: из 275
 <<-