Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности


Лекция 12
Ввод/Вывод

Обобщенное понятие источника ввода относится к разным методам получения инфы: к чтению дискового файла, знаков с клавиатуры, или получению данных из сети. Аналогично, под обобщенным понятием вывода также могут пониматься дисковые Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности файлы, сетевое соединение и т.п. Эти абстракции дают комфортную возможность для работы с вводом-выводом (I/O), не требуя при всем этом, чтоб любая часть вашего кода понимала разницу меж, скажем, клавиатурой Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности и сетью. В Java эта абстракция именуется потоком (stream) и реализована в нескольких классах пакета java.io. Ввод инкапсулирован в классе InputStream, вывод — в OutputStream. В Java есть несколько специализаций этих Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности абстрактных классов, учитывающих различия при работе с дисковыми файлами, сетевыми соединениями и даже с буферами в памяти.

File

File — единственный объект в java.io, который работает конкретно с дисковыми файлами. Хотя на внедрение файлов Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности в апплетах наложены жесткие ограничения, файлы по прежнему остаются основными ресурсами для неизменного хранения и совместного использования инфы. Каталог в Java трактуется как обыденный файл, но с дополнительным свойством — перечнем названий файлов, который Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности можно просмотреть при помощи способа list.

ЗАМЕЧАНИЕ

Java верно обрабатывает разделители имен каталогов в пути, применяемые в UNIX и DOS. Если вы используете стиль UNIX — знаки '/', то при работе в Windows Java автоматом Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности конвертирует их в '\'. Не забудьте, если вы привыкли к разделителям, принятым в DOS, другими словами, к '\', то для того, чтоб включить их в строчку пути, нужно их удвоить, аналогично тому Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, как это изготовлено в строке “\\java\\COPYRIGHT”.

Для определения стандартных параметров объекта в классе File есть много различных способов. Но, класс File несимметричен. Есть много способов, позволяющих выяснить характеристики объекта, но надлежащие Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности функции для конфигурации этих параметров отсутствуют. В следующем примере употребляются разные способы, дозволяющие получить свойства файла:

import java.io.File;

class FileTest {

static void p(String s) {

System.out.println(s);

}

public static Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности void main(String args[]) {

File f1 = new File("/java/COPYRIGHT");

p("File Name:" + f1 .getName());

p("Path:" + f1.getPath());

p("Абс Path:" + f1.getAbsolutePath());

p("Parent:" + f1.getParent());

p(f Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности1.exists() ? "exists" : "does not exist");

p(f1.canWrite() ? "is writeable" : "is not writeable");

p(f1.canRead() ? "is readable" : "is not readable");

p("is " + (f1.isDirectory() ? " " : "not") + " a directory");

p(f1.isFile() ? "is normal Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности file" : "might be a named pipe");

p(f1.isAbsolute() ? "is absolute" : "is not absolute");

p("File last modified:" + f1. lastModified());

p("File size:" + f1.length() + " Bytes");

} }

При запуске этой программки вы получите Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности что-то наподобие вроде:

File Name:COPYRIGHT (название файла)

Path:/java/COPYRIGHT (путь)

Абс Path:/Java/COPYRIGHT (путь от корневого каталога)

Parent:/java (родительский каталог)

exists (файл существует)

is writeable (разрешена запись)

is Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности readable (разрешено чтение)

is not a directory (не каталог)

is normal file (обыденный файл)

is absolute

File last modified:812465204000 (последняя модификация файла)

File size:695 Bytes (размер файла)

Существует также несколько сервисных способов, внедрение Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности которых ограничено обыкновенными файлами (их нельзя использовать к каталогам). Способ renameTo(File dest) переименовывает файл (нельзя переместить файл в другой каталог). Способ delete уничтожает дисковый файл. Этот способ может удалять только обыденные файлы Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, каталог, даже пустой, с его помощью удалить не получится.

Сборники

Сборники — это объекты класса File, в каких содержится перечень других файлов и каталогов. Если File ссылается на каталог, его способ isDirectory возвращает значение Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности true. В данном случае вы сможете вызвать способ list и извлечь находящиеся в объекте названия файлов и каталогов. В следующем примере показано, как при помощи способа list можно просмотреть содержимое каталога.

import Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности java.io.File;

class DirList {

public static void main(String args[]) {

String dirname = "/java"; // имя каталога

File f1 = new File(dirname);

if (f1.isDirectory()) { // является ли f1 каталогом

System.out.println("Directory Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности of ' + dirname);

String s[] = f1.list();

for ( int i=0; i < s.length; i++) {

File f = new File(dirname + "/" + s[i]);

if (f.isDirectory()) { // является ли f каталогом System.out.println(s Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности[i] + " is a directory"):

} else {

System.out.println(s[i] + " is a file");

} } } else {

System.out.println(dirname + " is not a directory");

} }

}

В процессе работы эта программка вывела содержимое каталога /java моего Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности компьютера в последующем виде:

С:\> java DirList

^ Directory of /java

bin is a directory

COPYRIGHT is a file

README is a file

FilenameFilter

Часто у вас будет появляться потребность ограничить количество названий файлов, возвращаемых способом list, чтоб получить Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности от него только имена, надлежащие определенному шаблону. Для этого в пакет java.io включен интерфейс FilenameFilter. Объекту, чтоб воплотить этот интерфейс, требуется найти только один способ — accept(), который будет вызываться один раз Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности с каждым новым названием файла. Способ accept должен возвращать true для тех имен, которые нужно включать в перечень, и false для имен, которые следует исключить.

У класса File еще есть два сервисных способа Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, нацеленных на работу с каталогами. Способ mkdir делает подкаталог. Для сотворения каталога, путь к которому еще не сотворен, нужно использовать способ mkdirs — он создаст не только лишь обозначенный каталог, да и Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности все отсутствующие родительские сборники.

InputStream

InputStream — абстрактный класс, задающий применяемую в Java модель входных потоков. Все способы этого класса при появлении ошибки возбуждают исключение IOException. Ниже приведен лаконичный обзор способов класса InputStream Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

OutputStream

Как и InputStream, OutputStream — абстрактный класс. Он задает модель выходных потоков Java. Все способы этого класса Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности имеют тип void и возбуждают исключение IOException в случае ошибки. Ниже приведен перечень способов этого класса:

Файловые потоки

FilelnputStream

Класс FileInputStream употребляется для ввода данных из файлов. В приведенном ниже примере создается два объекта этого класса, использующие один и тот же дисковый файл.

^ InputStream f Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности0 = new FileInputStream("/autoexec.bat");

File f = new File("/autoexec.bat"):

InputStream f1 = new FileInputStream(f);

Когда создается объект класса FileInputStream, он сразу с этим раскрывается для чтения. FileInputStream замещает 6 способов абстрактного класса InputStream. Пробы Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности применить к объекту этого класса способы mark и reset приводят к возбуждению исключения IOException. В приведенном ниже примере показано, как можно читать одиночные байты, массив байтов и поддиапазон массива байтов Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности. В этом примере также показано, как способом available можно выяснить, сколько еще осталось непрочитанных байтов, и как при помощи способа skip можно пропустить те байты, которые вы не желаете читать.

import java.io Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.*;

import java.util.*;

class FileInputStreamS {

public static void main(String args[]) throws Exception {

int size;

InputStream f1 = new FileInputStream("/wwwroot/default.htm");

size = f1.available();

System.out.println("Total Available Bytes: " + size Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности);

System.out.println("First 1/4 of the file: read()");

for (int i=0; i < size/4; i++) {

System.out.print((char) f1.read());

}

System.out.println("Total Still Available: " + f1.available());

System.out.println("Reading the Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности next 1/8: read(b[])");

byte b[] = new byte[size/8];

if (f1.read(b) != b.length) {

System.err.println("Something bad happened");

}

String tmpstr = new String(b, 0, 0, b.length);

System.out.println Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности(tmpstr);

System.out.println("Still Available: " + f1.available());

System.out.println("Skipping another 1/4: skip()");

f1.skip(size/4);

System.out.println( "Still Available: " + f1.available());

System.out.println("Reading 1/16 into the end of array Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности");

if (f1.read(b, b.length-size/16, size/16) != size/16) {

System.err.println("Something bad happened");

}

System.out.println("Still Available: " + f1.available());

f1.close();

}

}

FileOutputStream

У класса FileOutputStream — два таких же конструктора Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, что и у FileInputStream. Но, создавать объекты этого класса можно независимо от того, существует файл либо нет. При разработке нового объекта класс FileOutputStream перед тем, как открыть файл для вывода, поначалу делает его.

В Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности следующем нашем примере знаки, введенные с клавиатуры, считываются из потока System.in - по одному символу за вызов, до того времени, пока не заполнится 12-байтовый буфер. После чего создаются три Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности файла. В 1-ый из их, file1.txt, записываются знаки из буфера, но не все, а через один — нулевой, 2-ой и т.д.. Во 2-ой, file2.txt, записывается весь ввод, попавший в буфер. И в конце Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности концов в 3-ий файл записывается половина буфера, расположенная посреди, а 1-ая и последняя четверти буфера не выводятся.

import java.io.*;

class FileOutputStreamS {

public static byte getlnput()[] throws Exception {

byte buffer Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности[] = new byte[12];

for (int i=0; i<12; i++) {

buffer[i] = (byte) System.in.read();

}

return buffer;

}

public static void main(String args[]) throws Exception {

byte buf[] = getlnput();

OutputStream f0 = new FileOutputStream("file1.txt");

OutputStream f1 = new Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности FileOutputStream("file2.txt");

OutputStream f2 = new FileOutputStream("file3.txt");

for (int i=0; i < 12; i += 2) {

f0.write(buf[i]);

}

f0.close();

f1.write(buf);

f1.close();

f2.write(buf, 12/4, 12/2);

f2.close();

} }

ВНИМАНИЕ

В текущее Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности время не существует метода открыть FileOutputStream для дозаписи в конец файла. Если вы открываете файл при помощи конструктора FileOutputStream, прежнее содержимое этого файла пропадает. Это - очевидный недочет реализации Java.

ByteArraylnputStream

ByteArrayInputStream - это Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности реализация входного потока, в каком в качестве источника употребляется массив типа byte. У этого класса два конструктора, любой из которых в качестве первого параметра просит байтовый массив. В приведенном ниже Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности примере создаются два объекта этого типа. Эти объекты инициализируются знаками латинского алфавита.

^ String tmp = "abcdefghijklmnopqrstuvwxyz";

byte b[] = new byte [tmp.length()];

tmp. getBytes(0, tmp.length(), b, 0);

ByteArrayInputStream input1 = new ByteArrayInputStream(b);

ByteArrayInputStream input2 = new ByteArreyInputStream Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности(b,0,3);

ByteArrayOutputStream

У класса ByteArrayOutputStream — два конструктора. 1-ая форма конструктора делает буфер размером 32 б. При использовании 2-ой формы создается буфер с размером, данным параметром конструктора (в приведенном ниже примере — 1024 б):

^ OutputStream out Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности0 = new ByteArrayOutputStream();

OutputStream out1 = new ByteArrayOutputStream(1024);

В следующем примере объект ByteArrayOutputStream заполняется знаками, введенными с клавиатуры, после этого с ним производятся разные манипуляции.

import java.io.*;

import java.util.*;

class ByteArrayOutputStreamS {

public static Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности void main(String args[]) throws Exception {

int i;

ByteArrayOutputStream f0 = new ByteArrayOutputStream(12);

System.out.println("Enter 10 characters and a return");

while (f0.size() != 10) {

f0.write( System.in.read());

}

System.out.println Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности("Buffer as a string");

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

System.out.println ("Into array");

byte b[] = f0.toByteArray();

for (i=0; i < b.length; i++) {

System.out.print((char) b[i]);

}

System.out.println Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности();

System.out. println("To an OutputStream()");

OutputStream f2 = new File0utput8tream("test.txt");

f0.writeTo(f2);

System.out.println("Doing a reset");

f0. reset();

System.out.println("Enter 10 characters Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности and a return");

while (f0.size() != 10) {

f0.write (System.in.read());

}

System.out.println("Done.");

} }

Заглянув в сделанный в этом примере файл test.txt, мы увидим там конкретно то, что ждали:

С:\> type Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности test.txt

0123456789

StringBufferlnputStream

StringBufferInputStream схож классу ByteArrayInputStream с тем исключением, что внутренним буфером объекта этого класса является экземпляр String, а не байтовый массив. Не считая того, в Java нет соответственного ему класса StringBufferedOutputStream. У Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности этого класса есть единственный конструктор:

^ StringBufferInputStream( String s)

Фильтруемые потоки

При работе системы вывода в среде с параллельными процессами при отсутствии синхронизации могут появляться внезапные результаты. Предпосылкой этого являются пробы разных подпроцессов сразу Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности обратиться к одному и тому же сгустку. Все конструкторы и способы, имеющиеся в этом классе, схожи тем, которые есть в классах InputStream и OutputStream, единственное отличие классов фильтруемых потоков в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности том, что их способы синхронизованы.

Буферизованные потоки

Буферизованные потоки являются расширением классов фильтруемых потоков, в их к потокам ввода-вывода присоединяется буфер в памяти. Этот буфер делает две главные функции:

BufferedInputStream

Буферизация ввода-вывода — принятый метод оптимизации таких операций. Класс BufferedlnputStream в Java дает возможность “окружить” хоть какой объект InputStream буферизованным потоком, и, тем, получить выигрыш в производительности. У этого Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности класса два конструктора. 1-ый из их

^ BufferedInputStream(InputStream in)

делает буферизованный поток, используя для него буфер длиной 32 б. Во 2-м

BufferedInputStream(InputStream in, int size)

размер буфера для создаваемого потока задается вторым параметром конструктора Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности. В общем случае лучший размер буфера находится в зависимости от операционной системы, количества доступной оперативки и конфигурации компьютера.

BufferedOutputStream

Вывод в объект BufferedOutputStream схож выводу в хоть какой OutputStream с той различием, что Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности новый подкласс содержит дополнительный способ flush, используемый для принудительной чистки буфера и физического вывода на наружное устройство лежащей в нем инфы. 1-ая форма конструктора этого класса:

^ BufferedOutputStream(OutputStream out)

делает Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности поток с буфером размером 32 б. 2-ая форма:

BufferedOutputStream(OutputStream out, int size)

позволяет задавать требуемый размер буфера.

PushbacklnputStream

Одно из необыкновенных применений буферизации — реализация операции pushback (возвратить вспять). Pushback применяется к InputStream Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности для того, чтоб после чтения знака возвратить его назад во входной поток. Но способности класса PushbacklnputStream очень ограничены - неважно какая попытка возвратить в поток более 1-го знака приведет к незамедлительному возбуждению исключения IOException Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности. У этого класса — единственный конструктор

^ PushbackInputStream(InputStream in)

Кроме уже отлично нам знакомых способов класса InputStream, PushbacklnputStream содержит способ unread(int ch), который возвращает данный аргументом знак ch во входной поток.

SequencelnputStream

Класс SequencelnputStream поддерживает новейшую Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности возможность слияния нескольких входных потоков в один. В конструкторе класса SequenceInputStream в качестве параметра употребляется или два объекта InputStream, или перечисление, содержащее коллекцию объектов InputStream:

^ SequenceInputStream(Enumeration e) SequenceInputStream(InputStream s0, InputStream Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности s1)

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

PrintStream

Класс PrintStream Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности предоставляет все те утилиты форматирования, которые мы использовали в примерах для вывода через файловые дескрипторы пакета System с самого начала книжки. Вы уже привыкли писать “System.out.println”, не очень задумываясь при всем Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности этом о тех классах, которые занимаются форматированием выводимой инфы. У класса PrintStream два конструктора: PrintStream(OutputStream out) и PrintStream(OutputStream out, boolean autoflush). Параметр autoflush второго из их показывает, должна Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности ли исполняющая среда Java автоматом делать операцию чистки буфера над выходным потоком.

В Java-объектах PrintStream есть способы print и println, “умеющие” работать с хоть какими типами данных, включая Object. Если в качестве аргумента Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности этих способов употребляется не один из простых типов, то они вызывают способ toString класса Object, после этого выводят приобретенный итог.

ВНИМАНИЕ

В текущее время в Java отсутствуют средства для форматирования Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности выводимых данных обычных типов, к примеру, типов int и float. В C++ предусмотрены функции для форматирования чисел с плавающей точкой, дозволяющие, к примеру, задать вид вывода, при котором в написанном числе будет Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности четыре числа до десятичной точки и три - после.

По течению грести легче

Потоки в Java предоставляют программеру ясную абстракцию для выполнения сложных и часто массивных операций ввода-вывода данных. Java-программы, опирающиеся на абстракции высочайшего Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности уровня - классы InputStream и OutputStream, будут и в дальнейшем работать верно - даже тогда, когда будут придуманы новые усовершенствованные реализации классов ввода-вывода. Как вы увидите в последующей главе, такая модель отлично Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности работает и при переходе от набора потоков, нацеленных на файловую систему, к работе с сетевыми потоками и сокетами.


^ Лекция 13
Сетевые средства

Эта Лекция посвящена описанию пакета java.net. Java поддерживает протокол TCP/IP, во-1-х Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, расширяя собственный интерфейс потоков ввода-вывода, описанного в предшествующей главе, и во вторых, добавляя способности, нужные для построения объектов ввода-вывода при работе в сети.

InetAddress

Java поддерживает адреса абонентов, принятые в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности Internet, при помощи класса InetAddress. Для адресации в Internet употребляются служебные функции, работающие с обыкновенными, просто запоминающимися символическими именами, эти функции конвертируют символические имена в 32-битные адреса.

Фабричные способы

В классе InetAddress нет Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности доступных юзеру конструкторов. Для сотворения объектов этого класса необходимо пользоваться одним из его фабричных способов. Фабричные способы — это обыденные статические способы, которые возвращают ссылку на объект класса, которому они принадлежат. В этом Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности случае, у класса InetAddress есть три способа, которые можно использовать для сотворения представителей. Это способы getLocalHost, getByName и getAllByName.

В приведенном ниже примере выводятся адреса и имена локальной машины, локального почтового узла и Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности WWW-узла компании, в какой работает создатель.

^ InetAddress Address = InetAddress.getLocalHost();

System.out.println(Address);

Address = InetAddress.getByName("mailhost");

System.out.println(Address);

InetAddress SW[] = InetAddress.getAllByNarne(“www.starwave Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.com");

System.out.println(SW);

У класса InetAddress также есть несколько нестатических способов, которые можно использовать с объектами, возвращаемыми только-только нареченными фабричными способами:

Дейтаграммы

Дейтаграммы, либо пакеты протокола UDP (User Datagram Protocol) — это пакеты инфы, пересылаемые в сети по принципу “fire-and-forget” (выстрелил и запамятовал). Если вам нужно достигнуть хорошей Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности производительности, и вы в состоянии минимизировать издержки на проверку целостности инфы, пакеты UDP возможно окажутся очень полезными.

UDP не предугадывает проверок и подтверждений при передаче инфы. При передаче пакета UDP по какому-либо Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности адресу нет никакой гарантии того, что он будет принят, и даже того, что по этому адресу вообщем есть кому принимать такие пакеты. Аналогично, когда вы получаете дейтаграмму, у вас нет никаких гарантий Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, что она не была повреждена в пути либо что ее отправитель все еще ожидает от вас доказательства ее получения.

Java реализует дейтаграммы на базе протокола UDP, используя для этого два класса. Объекты класса DatagramPacket Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности представляют собой контейнеры с данными, a DatagramSocket — это механизм, применяемый при передаче и получении объектов DatagramPacket.

Сокеты “для клиентов”

TCP/IP-сокеты употребляются для реализации надежных двунаправленных, нацеленных на работу с потоками Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности соединений точка-точка меж узлами Internet. Сокеты можно использовать для соединения системы ввода-вывода Java с программками, которые могут производиться или на локальной машине, или на любом другом узле Internet Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности. В отличие от класса DatagramSocket, объекты класса Socket реализуют высоконадежные устойчивые соединения меж клиентом и сервером.

В пакете java.net классы Socket и ServerSocket очень отличаются друг от друга. 1-ое отличие в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности том, что ServerSocket ожидает, пока клиент не установит с ним соединение, в то время, как обыденный Socket трактует недоступность чего-либо, с чем он желает объединиться, как ошибку. Сразу с созданием объекта Socket устанавливается Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности соединение меж узлами Internet. Для сотворения сокетов вы сможете использовать два конструктора:

Из объекта Socket в хоть какое время можно извлечь информацию об адресе Internet и номере порта, с которым он соединен. Для Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности этого служат последующие способы:

После того, как объект Socket сотворен, им можно пользоваться для того, чтоб получить доступ к связанным с ним входному и выходному потокам. Эти потоки употребляются для приема и передачи данных точно Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности так же, как и обыденные потоки ввода-вывода, которые мы лицезрели в предшествующей главе:

Приведенный ниже очень обычной пример открывает соединение с портом 880 сервера “timehost” и выводит приобретенные от него данные.

import java.net.*;

import java.io.*;

class TimeHost {

public static Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности void main(String args[]) throws Exception {

int c;

Socket s = new Socket("timehost.starwave.com",880);

InputStream in = s.getInputStream();

while ((c = in.read()) != -1) {

System.out.print( (char) c);

}

s.close();

} }

Сокеты “для Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности серверов”

Как уже упоминалось ранее, Java поддерживает сокеты серверов. Для сотворения серверов Internet нужно использовать объекты класса ServerSocket. Когда вы создаете объект ServerSocket, он регистрирует себя в системе, говоря о том, что он Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности готов обслуживать соединения клиентов. У этого класса есть один дополнительный способ accept(), вызов которого перекрывает подпроцесс до того времени, пока какой-либо клиент не установит соединение по соответственному порту. После того, как Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности соединение установлено, способ accept() возвращает вызвавшему его подпроцессу обыденный объект Socket.

Два конструктора класса ServerSocket позволяют задать, по какому порту вы желаете соединяться с клиентами, и (необязательный параметр) как длительно вы Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности готовы ожидать, пока этот порт не освободится.

URL

URL (Uniform Resource Locators — однородные указатели ресурсов) — являются более базовым компонентом “Глобальной сети”. Класс URL предоставляет обычный и лаконичный программный интерфейс для доступа к инфы Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности в Internet при помощи URL.

У класса URL из библиотеки Java - четыре конструктора. В более нередко применяемой форме конструктора URL адресок ресурса задается в строке, схожей той, которую вы используете при работе с браузером Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности:

^ URL(String spec)

Две последующих разновидности конструкторов позволяют задать URL, указав его отдельные составляющие:

URL(String protocol, String host, int port, String file)

URL(String protocol, String host, String file)

4-ая, и последняя Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности форма конструктора позволяет использовать имеющийся URL в качестве ссылочного контекста, и сделать на базе этого контекста новый URL.

^ URL(URL context, String spec)

В приведенном ниже примере создается URL, адресующий www Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности-страницу (поставьте туда собственный адресок), после этого программка печатает характеристики этого объекта.

import java.net.URL;

class myURL {

public static void main(String args[]) throws Exception {

URL hp = new URL("http://coop.chuvashia Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.edu");

System.out. println("Protocol: " + hp.getProtocol());

System.out.printin("Port: " + hp.getPort());

System.out.println("Host: " + hp.getHost());

System.out.println("File: " + hp.getFile());

System.out.println("Ext Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности: " + hp.toExternaLForm());

} }

Для того, чтоб извлечь реальную информацию, адресуемую данным URL, нужно на базе URL сделать объект URLConnection, воспользовавшись для этого способом openConnection().

URLConnection

URLConnection — объект, который мы используем или для проверки параметров удаленного ресурса Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, адресуемого URL, или для получения его содержимого. В приведенном ниже примере мы создаем URLConnection при помощи способа openConnection, вызванного с объектом URL. После чего мы используем сделанный объект для получения содержимого Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности и параметров документа.

import java.net.*;

import java.io.*;

class localURL {

public static void main(String args[]) throws Exception {

int c;

URL hp = new URL("http", "127.0.0.1", 80, "/");

URLConnection hpCon = hp.openConnection();

System Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.out.println("Date: " + hpCon.getDate());

System.out.println("Type: " + hpCon.getContentType());

System.out.println("Exp: " + hpCon.getExpiration());

System.out.println( "Last M: " + hpCon.getLastModified());

System.out.println("Length: " + hpCon.getContentLength());

if (hpCon.getContentLength() > 0) {

System.out Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.println("=== Content ===");

InputStream input = hpCon.getInputStream();

int i=hpCon.getContentLength();

while (((c = input. read()) != -1) && (--i > 0)) {

System.out.print((char) c);

}

input.close();

}

else {

System.out.println("No Content Available");

}

} }

Эта программка Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности устанавливает HTTP-соединение с локальным узлом по порту 80 (у вас на машине должен быть установлен Web-сервер) и запрашивает документ по дефлоту, как правило это - index.html. После чего программка выводит значения Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности заголовка, запрашивает и выводит содержимое документа.

Сеть и только сеть

Сетевые классы Java предоставляют ясный и обычной в использовании интерфейс для работы в Internet. Фундамент, заложенный в пакете java.net - не плохая база для Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности предстоящего развития, которая позволит Java эволюционировать совместно с Internet.


^ Лекция 14
Апплеты

Апплеты — это мелкие приложения, которые располагаются на серверах Internet, транспортируются клиенту по сети, автоматом инсталлируются и запускаются на месте Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, как часть документа HTML. Когда апплет прибывает к клиенту, его доступ к ресурсам ограничен.

Ниже приведен начальный код канонической программки HelloWorld, оформленной в виде апплета:

import java.awt.*;

import java.applet.*;

public class HelloWorldApplet Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности extends Applet {

public void paint(Graphics g) {

g.drawString("Hello World!", 20, 20);

} }

Этот апплет начинается 2-мя строчками, которые импортируют все пакеты иерархий java.applet и java.awt. Далее в нашем примере Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности находится способ paint, замещающий одноименный способ класса Applet. При вызове этого способа ему передается аргумент, содержащий ссылку на объект класса Graphics. Последний употребляется для прорисовки нашего апплета. При помощи способа drawString, вызываемого с Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности этим объектом типа Graphics, в позиции экрана (20,20) выводится строчка “Hello World”.

Для того, чтоб при помощи браузера запустить этот апплет, нам придется написать несколько строк html-текста.



Вы сможете поместить эти Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности строчки в отдельный html-файл (HelloWorldApplet.html), или воткнуть их в текст этой программки в виде комментария и запустить программку appletviewer с его начальным текстом в качестве аргумента.

Тег HTML

Тег употребляется для пуска Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности апплета как из HTML-документа, так и из программки appletviewer. Программка appletviewer делает каждый отысканный ей тег в отдельном окне, в то время как браузеры позволяют расположить на одной страничке Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности несколько апплетов. Синтаксис тэга в текущее время такой :


CODE = appletFile

OBJECT = appletSerialFile

WIDTH = pixels

HEIGHT = pixels

[ARCHIVE = jarFiles]

[CODEBASE = codebaseURL]

[ALT = alternateText]

[NAME = appletInstanceName]

[ALIGN = alignment]

[VSPACE = pixels]

[HSPACE = pixels]

>

[]

[]

[HTML-текст, отображаемый при отсутствии поддержки Java]



CODE Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности = appletClassFile

CODE — неотклонимый атрибут, задающий название файла, в каком содержится оттранслированный код апплета. Название файла задается относительно codebase, другими словами или от текущего каталога, или от каталога, обозначенного в атрибуте CODEBASE. В Java Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности 1.1 заместо этого атрибута может употребляться атрибут OBJECT.

OBJECT = appletClassSerialFile

Показывает название файла, содержащего сериализованный апплет, из которого последний будет восстановлен. При запуске определяемого таким макаром апплета должен вызываться не способ init(), а способ Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности start(). Для апплета нужно задать или атрибут CODE, или атрибут OBJECT, но задавать эти атрибуты сразу нельзя.

WIDTH = pixels

HEIGHT = pixels

WIDTH и HEIGHT — неотклонимые атрибуты, задающие исходный размер видимой области апплета.

ARCHIVE = jarFiles

Задает перечень Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности jar-файлов (делится запятыми), которые за ранее загружаются в Web-броузер. В этих архивных файлах могут содержаться файлы классов, изображения, звуки и любые другие ресурсы, нужные апплету. Для сотворения архивов Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности употребляется утилита JAR, синтаксис вызова которой припоминает вызов команды TAR Unix (подробное описание утилит смотрите в Приложении 1) :

c:\> jar cf soundmap.jar *.class image.gif sound.wav

Разумеется, что передача сжатых jar-файлов Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности увеличивает эффективность работы. Потому многие средства разработки (Lotus JavaBeans, Borland JBuilder) уже имеют средства для публикации апплетов в виде jar-файлов.

CODEBASE = codebaseURL

^ CODEBASE — необязательный атрибут, задающий базисный URL кода апплета, являющийся каталогом, в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности каком будет производиться поиск исполняемого файла апплета (задаваемого в признаке CODE). Если этот атрибут не задан, по дефлоту употребляется каталог данного HTML-документа. CODEBASE не непременно должен указывать на тот же узел Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, с которого был загружен HTML-документ.

ALT = alternateAppletText

Признак ALT — необязательный атрибут, задающий куцее текстовое сообщение, которое должно быть выведено в этом случае, если применяемый браузер распознает синтаксис тега , но делать апплеты не Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности умеет. Это не то же самое, что HTML-текст, который можно вставлять меж и для браузеров, вообщем не поддерживающих апплетов.

NAME = appletInstanceName

NAME — необязательный атрибут, применяемый для задания имени для данного Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности экземпляра апплета. Присвоение апплетам имен нужно для того, чтоб другие апплеты на этой же страничке могли отыскивать их и разговаривать с ними. Для того, чтоб получить доступ к подклассу MyApplet класса Applet с именованием “Duke Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности”, необходимо написать:

^ MyApplet a = getAppletContext().getApplet("Duke");

После того, как вы получили таким макаром дескриптор именованного экземпляра апплета, вы сможете вызывать его способы точно так же, как это делается Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности с хоть каким другим объектом.

ALIGN = alignment

ALIGN — необязательный атрибут, задающий стиль выравнивания апплета. Этот атрибут трактуется так же, как в теге IMG, вероятные его значения — LEFT, RIGHT, TOP, TEXTTOP, MIDDLE, ABSMIDDLE, BASELINE, BOTTOM, ABSBOTTOM Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

VSPACE = pixels

^ HSPACE = PIXELS

Эти необязательные атрибуты задают ширину свободного места в пикселях сверху и снизу апплета (VSPACE), и слева и справа от него (HSPACE). Они трактуются точно так же, как одноименные Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности атрибуты тега IMG.

PARAM NAME = appletAttribute1 VALUE = value1

Этот тег дает возможность передавать из HTML-страницы апплету нужные ему аргументы. Апплеты получают эти атрибуты, вызывая способ getParameter(), описываемый ниже.

Передача характеристик

getParameter(String Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности)

Способ getParameter возвращает значение типа String, соответственное обозначенному имени параметра. Если вам в качестве параметра требуется значение какого-нибудь другого типа, вы должны конвертировать строку-параметр без помощи других. Вы на данный момент увидите Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности некие примеры использования способа getParameter для извлечения характеристик из приведенного ниже примера:















Ниже показано, как извлекается любой из этих характеристик:

String FontName = getParameter("fontName");

String FontSize = Integer.parseInt(getParameter Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности("fontSize"));

^ String Leading = Float.valueOf(getParameter("leading"));

String PaidUp = Boolean.valueOf(getParameter("accountEnabled"));

Контекст апплета

getDocumentBase и getCodeBase

Может быть, Вы будете писать апплеты, которым пригодится очевидно загружать данные и текст. Java позволяет апплету загружать Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности данные из каталога, в каком размещается HTML-документ, запустивший апплет (база документа - getDocumentBase), и из каталога, из которого был загружен class-файл с кодом апплета (база кода - getCodeBase).

AppletContext и showDocument

AppletContext представляет собой Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности средства, дозволяющие получать информацию об окружении работающего апплета. Способ showDocument приводит к тому, что данный его параметром документ отображается в основном окне браузера либо фрейме.

Отладочная печать

Отладочную печать можно выводить в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности два места: на консоль и в статусную строчку программки просмотра апплетов. Для того, чтоб вывести сообщение на консоль, нужно написать:

^ System.out.println(“Hello there, welcome to Java”);

Сообщения на консоли очень комфортны, так Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности как консоль обычно не видна юзерам апплета, и в ней довольно места для нескольких сообщений. В браузере Netscape консоль Java доступна из меню Options, пункт “Show Java Console”.

Способ showStatus Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности выводит текст в статусной области программки арpletviewer либо браузера с поддержкой Java. В статусной области можно вывести только одну строчку сообщения.

Порядок инициализации апплета

Ниже приведен порядок, в каком вызываются способы класса Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности Applet, с пояснениями, необходимо либо нет переопределять данный способ.

init

Способ init вызывается первым. В нем вы должны инициализировать свои переменные.

start

Способ start вызывается сразу после способа init. Он также употребляется в качестве стартовой Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности точки для возобновления работы после того, как апплет был остановлен. В то время, как способ init вызывается только в один прекрасный момент — при загрузке апплета, start вызывается всякий раз при выводе HTML Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности-документа, содержащего апплет, на экран. Так, к примеру, если юзер перейдет к новейшей WWW-странице, а потом возвратится вспять к страничке с апплетом, апплет продолжит работу с способа start.

paint

Способ paint Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности вызывается всякий раз при повреждении апплета. AWT смотрит за состоянием окон в системе и замечает такие случаи, как, к примеру, перекрытие окна апплета другим окном. В таких случаях, после того, как апплет опять оказывается видимым Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, для восстановления его изображения вызывается способ paint.

update

Применяемый по дефлоту способ update класса Applet поначалу закрашивает апплет цветом фона по дефлоту, после этого вызывает способ paint. Если вы в способе paint заполняете Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности фон другим цветом, юзер будет созидать вспышку цвета по дефлоту при каждом вызове способа update — другими словами, каждый раз, когда вы перерисовываете апплет. Чтоб избежать этого, необходимо заместить способ update. В общем Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности случае необходимо делать операции рисования в способе update, а в способе paint, к которому будет обращаться AWT, просто вызвать update.

stop

Способ stop вызывается тогда, когда браузер покидает HTML-документ, содержащий Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности апплет. При вызове способа stop апплет еще работает. Вы должны использовать этот способ для приостановки тех подпроцессов, работа которых необязательна при невидимом апплете. После того, как юзер опять обратится к этой Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности страничке, вы должны будете возобновить их работу в способе start.

destroy

Способ destroy вызывается тогда, когда среда (к примеру, браузер Netscape) решает, что апплет необходимо на сто процентов удалить из памяти. В этом способе Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности необходимо высвободить все ресурсы, которые использовал апплет.

Перерисовка

Возвратимся к апплету HelloWorldApplet. В нем мы заместили способ paint, что позволило апплету выполнить отрисовку. В классе Applet предусмотрены дополнительные способы рисования, дозволяющие отлично Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности закрашивать части экрана. При разработке первых апплетов иногда тяжело осознать, почему способ update никогда не вызывается. Для инициации update предусмотрены три варианта способа repaint.

repaint

Способ repaint употребляется для принудительного перерисовывания апплета. Этот способ Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, в свою очередь, вызывает способ update. Но, если ваша система неспешная либо очень загружена, способ update может и не вызваться. Близкие по времени запросы на перерисовку могут объединяться AWT, так что способ update Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности может вызываться спорадически. Если вы желаете достигнуть ритмичной смены кадров изображения, воспользуйтесь способом repaint(time) — это позволит уменьшить количество кадров, нарисованных не впору.

repaint(time)

Вы сможете вызывать способ repaint Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, устанавливая последний срок для перерисовки (этот период задается в миллисекундах относительно времени вызова repaint).

repaint(x, y, w, h)

Эта версия ограничивает обновление экрана данным прямоугольником, изменены будут только те части экрана, которые в нем Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности находятся.

repaint(time, x, у, w, h)

Этот способ — композиция 2-ух прошлых.

Задание размеров графических изображений.

Графические изображения вычерчиваются в стандартной для компьютерной графики системе координат, в какой координаты Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности могут принимать только целые значения, а оси ориентированы слева вправо и сверху вниз. У апплетов и изображений есть способ size, который возвращает объект Dimension. Получив объект Dimension, вы сможете получить и значения его переменных width Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности и height:

^ Dimension d = size();

System.out.println(d. width + "," + d.height);

Обыкновенные способы класса Graphics

У объектов класса Graphics есть несколько обычных функций рисования. Каждую из фигур можно нарисовать заполненной, или прорисовать Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности только ее границы. Любой из способов drawRect, drawOval, fillRect и fillOval вызывается с 4-мя параметрами: int x, int y, int width и int height. Координаты х и у задают положение верхнего Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности левого угла фигуры, характеристики width и height определяют ее границы.

drawLine

drawline(int x1, int у1, int х2, int у2)

Этот способ вычерчивает отрезок прямой меж точками с координатами (х1,у1) и Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности (х2,у2). Эти полосы представляют собой обыкновенные прямые шириной в 1 пиксель. Поддержка различных перьев и различных толщин линий не предусмотрена.

drawArc и fillArc

Форма способов drawArc и fillArc последующая:

drawArc(int x Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, int у, int width, int height, int startAngle, int sweepAngle)

Эти способы вычерчивают (fillArc заполняет) дугу, ограниченную прямоугольником (x,y,width, height), начинающуюся с угла startAngle и имеющую угловой размер sweepAngle. Ноль градусов соответствует Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности положению часовой стрелки на 3 часа, угол отсчитывается против часовой стрелки (к примеру, 90 градусов соответствуют 12 часам, 180 — 9 часам, и т.д.).

drawPolyson и fillPolyson

Макеты для этих способов:

drawPolygon(int[], int[], int)

fillPolygon Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности(int[], int[], int)

Способ drawPolygon отрисовывают контур многоугольника (ломаную линию), задаваемого 2-мя массивами, содержащими х и у координаты вершин, 3-ий параметр способа — число пар координат. Способ drawPolygon не замыкает автоматом вычерчиваемый контур. Для Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности того, чтоб прямоугольник вышел замкнутым, координаты первой и последней точек должны совпадать.

Цвет

Цветовая система AWT разрабатывалась так, чтоб была возможность работы со всеми цветами. После того, как цвет задан, Java ищет в спектре Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности цветов монитора тот, который ему больше всего соответствует. Вы сможете запрашивать цвета в той семантике, к которой привыкли — как смесь красноватого, зеленоватого и голубого, или как комбинацию колера, насыщенности и Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности яркости. Вы сможете использовать статические переменные класса Color.black для задания какого-нибудь из общеупотребительных цветов - black, white, red, green, blue, cyan, yellow, magenta, orange, pink, gray, darkGray и lightGray.

Для сотворения нового цвета употребляется Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности один из 3-х обрисованных ниже конструкторов.

Color(int, int, int)

Параметрами для этого конструктора являются три целых числа в спектре от 0 до 255 для красноватого, зеленоватого и голубого компонент цвета.

Color(int Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности)

У этого конструктора — один целочисленный аргумент, в каком в упакованном виде заданы красноватый, зеленоватый и голубой составляющие цвета. Красноватый занимает биты 16-23, зеленоватый — 8-15, голубой — 0-7.

Color(float, float, float)

Последний из конструкторов цвета Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, Color(float, float, float), воспринимает в качестве характеристик три значения типа float (в спектре от 0.0 до 1.0) для красноватого, зеленоватого и голубого базисных цветов.

Способы класса Color

HSBtoRGB(float, float, float)

RGBtoHSB(int, int, int, float Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности[1)

HSBtoRGB конвертирует цвет, данный цветом, насыщенностью и яркостью (HSB), в целое число в формате RGB, готовое для использования в качестве параметра конструктора Color(int). RGBtoHSB конвертирует цвет, данный 3-мя базисными компонентами, в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности массив типа float со значениями HSB, надлежащими данному цвету.

Цветовая модель HSB (Hue-Saturation-Brightness, оттенок-насыщенность-яркость) является кандидатурой модели Red-Green-Blue для задания цветов. В этой модели Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности цвета можно представить как круг с разными цветами (колер может принимать значения от 0.0 до 1.0, цвета на этом круге идут в том же порядке, что и в радуге — красноватый, оранжевый, желтоватый, зеленоватый, голубой, голубий Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, фиолетовый). Насыщенность (значение в спектре от 0.0 до 1.0) - это шкала глубины цвета, от легкой пастели до сочных цветов. Яркость - это также число в спектре от 0.0 до 1.0, при этом наименьшие значения соответствуют более Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности темным цветам, а огромные - более броским.

getRedQ, getGreenO, setBlue()

Любой из этих способов возвращает в младших восьми битах результата значение соответственного базисного компонента цвета.

getRGB()

Этот способ возвращает целое число, в каком упакованы Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности значения базисных компонент цвета, при этом

red = Oxff & (getRGB() >> 16);

green = Oxff & (getRGB() >> 8);

blue = Oxff & getRGB();

setPaintMode() и setXORMode(Color)

Режим отрисовки paint — применяемый по дефлоту способ наполнения графических изображений, при котором цвет пикселей меняется Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности на данный. XOR устанавливает режим рисования, когда результирующий цвет выходит выполнением операции XOR (исключающее либо) для текущего и обозначенного цветов (в особенности полезно для анимации).

Шрифты

Библиотека AWT обеспечивает огромную упругость при Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности работе со шрифтами благодаря предоставлению соответственных абстракций и способности динамического выбора шрифтов. Вот очень маленькая программка, которая печатает на консоли Java имена всех имеющихся в системе шрифтов.

/*

*

*

*

*/

import java.applet Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.*;

import java.awt.*;

public class WhatFontsAreHere extends Applet {

public void init() {

String FontList[];

FontList = getToolkit().getFontList();

for (int i=0; i < FontList.length; i++) {

System.out.println(i + ": " + FontList[i]);

}

} }

drawString

В прошлых примерах употреблялся способ drawString Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности(String, x, у). Этот способ выводит строчку с внедрением текущих шрифта и цвета. Точка с координатами (х,у) соответствует левой границе базисной полосы знаков, а не левому верхнему углу, как это принято Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности в других способах рисования. Для того, чтоб осознать, как при всем этом размещается описывающий строчку прямоугольник, прочтите раздел о метрике шрифта в конце этой главы.

Внедрение шрифтов

Конструктор класса Font делает новый шрифт Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности с обозначенным именованием, стилем и размером в пт:

^ Font StrongFont = new Font("Helvetica", Font.BOLD|Font.ITALIC, 24);

В текущее время доступны последующие имена шрифтов: Dialog, Helvetica, TimesRoman, Courier и Symbol Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности. Для указания стиля шрифта снутри данного семейства предусмотрены три статические переменные. — Font.PLAIN, Font.BOLD и Font.ITALIC, что соответствует обыкновенному стилю, курсиву и полужирному.

Сейчас давайте поглядим на несколько дополнительных способов.

getFamily и Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности getName

Способ getFamily возвращает строчку с именованием семейства шрифтов. При помощи способа getName можно получить логическое имя шрифта.

getSize

Этот способ возвращает целое число, представляющее собой размер шрифта в пт.

getStyle

Этот Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности способ возвращает целое число, соответственное стилю шрифта. Приобретенный итог можно побитово сопоставить со статическими переменными класса Font: — PLAIN, BOLD и ITALIC.

isBold, isItalic, isPlain

Эти способы возвращают true в этом случае, если стиль шрифта Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности — полужирный (bold), курсив (italic) либо обыденный (plain), соответственно.

Размещение и шрифты: FontMetrics

В Java употребляются разные шрифты, а класс FontMetrics позволяет программеру точно задавать положение выводимого в апплете текста. Сначала нам необходимо осознать кое-что Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности из обыкновенной терминологии, употребляемой при работе со шрифтами:

Внедрение FontMetrics

Ниже приведены некие способы класса FontMetrics:

stringWidth

Этот способ Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности возвращает длину данной строчки для данного шрифта.

bytesWidth, charsWidth

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

getAscent, getDescent, getHeight

Эти способы возвращают подъем, понижение и ширину шрифта. Сумма подъема Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности и понижения дают полную высоту шрифта. Высота шрифта — это не просто расстояние от самой нижней точки букв g и у до самой верхней точки большей буковкы Т и знаков вроде скобок. Высота включает подчеркивания Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности и т.п.

getMaxAscent и getMaxDescent

Эти способы служат для получения наибольших подъема и понижения всех знаков в шрифте.

Центрирование текста

Давайте сейчас воспользуемся способами объекта FontMetrics для получения подъема, понижения и длины Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности строчки, которую требуется нарисовать, и при помощи приобретенных значений отцентрируем ее в нашем апплете.

/*

*

*

*

*/

import java.applet.*;

import java.awt.*;

public class HelloWorld extends Applet {

final Font f = new Font("Helvetica", Font.BOLD Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, 18);

public void paint(Graphics g) {

Dimension d = this.size();

g.setColor(Color.white);

g.fillRect(0,0,d.width,d.height);

g.setColor(Color.black);

g.setFont(f);

drawCenteredString("Hello World!", d.width, d Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.height, g);

g.drawRect(0,0,d.width-1,d.height-1);

}

public void drawCenteredString(String s, int w, int h, Graphics g) {

FontMetrics fm = g.getFontMetrics();

int x = (w - fm.stringWidth(s)) / 2;

int Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности y = (fm.getAscent() + (h - (fm.getAscent() + fm.getDescent()))/2);

g.drawString(s, x, y);

} }

Ах так смотрится апплет в действии – HelloWorld.html.


Инструментальные средства JDK

appletviewer — программка просмотра апплетов Java

Синтаксис вызова

appletviewer [-debug] [-Japryмeнт Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности] [-encoding кодировка] url/файл...

Описание

Программка appletviewer загружает один либо несколько HTML-документов по обозначенным в командной строке URL. Она читает либо загружает все апплеты, на которые содержатся ссылки в документах, и показывает любой из их Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности в своем окне. Если ни один из нареченных документов не содержит тег , appletviewer не делает ничего.

Характеристики

-debug – При указании данного параметра appletviewer запускается под управлением jdb (отладчик Java). Это позволяет отлаживать Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности апплет, на который ссылается документ либо документы.

-Jаргумент – Передает аргумент командной строчки интерпретатору Java. Обозначенный аргумент не обязан иметь пробелов. Если интерпретатору Java необходимо передать аргумент, включающий в себя несколько слов, следует Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности использовать соответственное количество характеристик -J. Перечень допустимых характеристик интерпретатора Java можно отыскать в параграфе, посвященном описанию Java. Доступен в JDK версии 1.1 либо более поздних версий.

-encoding шифровка – Определяет шифровку знаков, которая должна употребляться Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности программкой appletviewer при чтении содержимого обозначенных файлов либо URL. Он употребляется в процессе преобразования значений характеристик апплета в Unicode. Доступен в JDK версии 1.1 либо более поздних версий.

Команды

В окне программки appletviewer содержится Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности единственное меню Applet со последующими командами:

Restart – Останавливает и уничтожает текущий апплет, потом поновой инициализирует его и запускает повторно.

^ Reload – Останавливает, уничтожает и выгружает апплет, потом опять загружает, инициализирует Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности и запускает его.

Stop – Останавливает текущий апплет. Доступна в JDK версии 1.1 либо более поздних версий.

Save – Сериализует апплет и сохраняет его в файле Applet.ser в домашнем каталоге юзера. Перед вызовом этой команды апплет нужно Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности приостановить. Доступна в JDK версии 1.1 либо более поздних версий.

^ Start – Повторно запускает остановленный апплет. Доступна в JDK версии 1.1 либо более поздних версий.

Clone – Делает копию апплета в новеньком окне appletvlewer.

^ Tag – Открывает Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности диалоговое окно, где выводится тег со всеми надлежащими тегами
, которые делают данный апплет.

Info – Открывает диалоговое окно, содержащее информацию о данном апплете. Эту информацию позволяют получить способы getAppletInfo () и getParameterlnfo Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности (), которые реализуются апплетом.

^ Edit – Эта команда не реализована, потому меню Edit не доступно.

Character Encoding – Выводит текущую шифровку знаков в строке состояния. Доступна в JDK версии 1.1 либо более поздних версий.

^ Print – Выводит апплет Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности на печать. Доступна в JDK версии 1.1 либо более поздних версий.

Properties – Выводит диалоговое окно, которое позволяет юзеру устанавливать возлюбленный набор характеристик appletviewr, в том числе характеристики брандмауэров и кэширующих Proxy-серверов Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

^ Close – Закрывает текущее окно appletviewer.

Quit – Заканчивает работу appletviewer, закрывая все открытые окна.

Характеристики

Программка appletviewer при запуске читает определения параметров из файла ~/.hotjava/properties (в среде UNIX) либо \hotjava\properties (в среде Windows), путь Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности к которому определяется относительно переменной среды home. Эти характеристики хранятся в перечне системных параметров и употребляются для определения разных ошибок и выводимых апплетом сообщений о состоянии, также для определения политики Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности безопасности и особенностей внедрения Proxy-серверов. Характеристики, которые оказывают влияние на безопасность и работу Proxy-серверов, приведены ниже.

Безопасность

Последующие характеристики определяют те связанные с безопасностью ограничения, которые накладываются программкой appletviewer на работу не пользующихся Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности доверием апплетов.

acl.read – Представляет собой перечень файлов и каталогов, которые разрешено читать не пользующимся доверием апплетам. Элементы перечня должны делиться двоеточиями в среде UNIX и точками с запятой в среде Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности Windows. В среде UNIX знак - заменяется домашним каталогом текущего юзера. Если в качестве элемента перечня возникает знак +, он заменяется значением характеристики acl.read.default. Проще всего разрешить доступ для чтения — задать Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности acl.read равным +. По дефлоту не пользующимся доверием апплетам запрещено читать какие-либо файлы либо сборники.

acl.read.default – Представляет собой перечень файлов и каталогов, которые разрешено читать не пользующимся доверием апплетам, если Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности свойство acl.read равно +.

acl.write – Представляет собой перечень файлов и каталогов, в которые разрешено записывать не пользующимся доверием апплетам. Элементы перечня должны делиться двоеточиями в среде UNIX и точками Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности с запятой в среде Windows. В среде UNIX знак ~ заменяется именованием домашнего каталога текущего юзера. Если в качестве элемента перечня возникает знак +, то он заменяется значением характеристики acl.write, default. Проще всего Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности разрешить доступ для записи — задать acl.write равным +. По дефлоту не пользующимся доверием апплетам запрещено записывать в какие-либо файлы либо сборники.

acl.write.default – Представляет собой перечень файлов и каталогов, в которые разрешено Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности записывать не пользующимся доверием апплетам, если свойство acl.write равно +.

appletviewer.security.mode – Показывает типы сетевого доступа, разрешенного не пользующимся доверием апплетам. Значение none указывает, что апплет вообщем не может работать в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности сети, значение host (принято по дефлоту), — что апплет в состоянии связываться только с узлом, с которого он загружен, а значение unrestricted, — что апплет имеет возможность связаться с хоть каким узлом без Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности ограничений.

package.restrict.access. префикс_пакета – Свойствам данного вида можно присвоить значение true, чтоб запретить не пользующимся доверием апплетам использовать классы хоть какого пакета, имя которого начинается с обозначенного префикса. К примеру, чтоб помешать Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности апплету использовать хоть какой из классов Sun (таковой как компилятор Java либо сама программка просмотра апплетов), распространяемых в составе JDK, можно найти последующее свойство:

package . restrict. access. sun==true

По дефлоту значение Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности этого характеристики равно true для пакетов sun.* и netscape.*.

package.restrict.definition.префикс_пакета – Свойствам данного вида можно присвоить значение true, чтоб запретить не пользующимся доверием апплетам определять класс хоть Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности какого пакета, имя которого начинается с обозначенного префикса. К примеру, чтоб помешать апплету найти классы в любом стандартном пакете Java, можно задать последующее свойство:

package.restrict.definition.java=true

По дефлоту значение этого характеристики равно Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности true для пакетов java.*, sun.* и netscape.*.

property.applet – Когда свойству с таким именованием в Java I.I присваивается значение true, это означает, что апплету разрешается читать свойство под именованием property из Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности перечня системных параметров. По дефлоту апплетам можно читать только 10 стандартных системных параметров (их перечень находится в главе 11). К примеру, чтоб разрешить апплету читать свойство user.home, нужно указать это свойство в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности последующем виде:

user.home.applet=true

Proxy-серверы

Характеристики, перечисленные ниже, определяют работу программки appletviewer с брандмауэрами и кэширующими Proxy-серверами.

firewallHost – Определяет брандмауэр, с которым нужно связываться, если свойство firewallSet имеет значение Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности true.

firewallPort – Определяет порт брандмауэра, с которым нужно связываться, если свойство firewallSet имеет значение true.

firewallSet – Докладывает, должна ли программка просмотра апплетов использовать брандмауэр. Может иметь значения true и false.

proxyHost – Определяет кэширующий Proxy-сервер Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, с которым нужно связываться, если свойство proxySet установлено в true.

proxyPort – Определяет порт кэширующего Proxy-сервера, с которым необходимо связаться, если свойство proxySet установлено в true.

proxySet – Докладывает, должна ли программка Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности просмотра апплетов использовать кэширующий Proxy-сервер. Может иметь значения true и false.


Переменные среды

CLASSPATH – Содержит упорядоченный перечень (с двоеточиями в качестве разделителей для UNIX и с точками с запятой — для Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности Windows) каталогов и файлов с расширением ziр, в каких appletviewer должен находить определения классов. Когда путь указан при помощи переменной среды, appletviewer всегда неявно добавляет место расположения системных классов к концу пути. Если Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности эта переменная не указана, по дефлоту перечень содержит текущий каталог и путь к системным классам. Отметим, что appletviewer поддерживает аргумент командной строчки -classpath, кроме его косвенной поддержки через опцию -J.

Смотри также

java, javac Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, jdb

jar — программка сотворения архивов Java

Доступность

JDK версии 1.1 и поболее поздних версий.

Синтаксис вызова

jar c|t|x[f][m][v] [jar-файл] [файл описания} [файлы}

Описание

Программка jar употребляется для сотворения архивных файлов Java (JAR Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности) и работы с ними. JAR-файл представляет собой сжатый ZIP-файл с дополнительным файлом описания. Синтаксис команды jar припоминает синтаксис команды tar (tape archive — архив на магнитной ленте) ОС UNIX Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

Характеристики командной строчки jar задаются в виде блока записанных слитно букв, которые передаются в виде 1-го аргумента, а не через отдельные аргументы командной строчки. 1-ая буковка такового аргумента задает нужное действие, которое должна выполнить программка Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности jar. Другие буковкы в этом аргументе являются необязательными. Разные аргументы файлов зависят от того, какие буковкы характеристик заданы.

Характеристики

Первым аргументом командной строчки jar является набор знаков, задающих операцию, которая Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности должна быть выполнена. 1-ый знак определяет основную операцию и является неотклонимым. Вероятны последующие варианты:

с Сделать новый JAR-архив. В качестве последних аргументов командной строчки jar нужно указать перечень файлов и/либо каталогов.

t Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности Вывести перечень файлов, содержащихся в JAR-архиве. Если задано имя JAR-файла при помощи параметра f, то перечень файлов выводится для него. В неприятном случае имя JAR-файла читается со Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности стандартного устройства ввода.

х Извлечь содержимое JAR-архива. Если задано имя JAR-файла при помощи параметра f, то извлекается содержимое этого файла. В неприятном случае имя JAR-файла читается со стандартного устройства Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности ввода. Когда командная строчка заканчивается перечнем файлов и/либо каталогов, из JAR-архива извлекаются только файлы и сборники, перечисленные в этом перечне. В неприятном случае из архива извлекаются все файлы.

Прямо за идентификатором Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, определяющим выполняемое действие, могут следовать необязательные характеристики:

f Показывает на то, что имя JAR-файла, который нужно сделать, из которого необходимо извлечь файлы либо получить перечень содержащихся файлов, задается в командной строке. Если f Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности употребляется совместно с с, t либо х, имя JAR-файла должно задаваться в качестве второго аргумента командной строчки вызовауаг (т.е. оно должно размещаться конкретно за блоком характеристик). Когда этот параметр не Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности задан, jar записывает создаваемый JAR-файл в стандартное устройство вывода либо читает его со стандартного устройства ввода.

m Употребляется исключительно в сочетании с параметром с и показывает на то, что jar должна Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности читать файл описания, обозначенный в командной строке и использовать его в качестве базы для сотворения описания, которое врубается в JAR-файл. Когда этот параметр задается после параметра f, название Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности файла описания должно указываться после имени создаваемого архива. Если m стоит перед параметром f, то название файла описания должно предшествовать названии файла создаваемого архива.

v Описание. Если этот параметр задается совместно с параметром с, тоуаг Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности выводит имя каждого добавляемого в архив файла со статистикой его сжатия. Когда параметр употребляется в купе с t, jar выводит перечень файлов, в каком не считая названии файла содержится его объем и Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности дата последнего конфигурации. Если v указывается сразу с х, то jar выводит имя каждого извлекаемого из архива файла.

Примеры

Создание обычного JAR-архива:

% jar cvf my.jar *.java images

Получение перечня содержимого Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности архива:

% jar tvf your.jar

Извлечение файла описания из JAR-файла:

% jar xf the.jar META-INF/MANIFEST.MF

Создание JAR-файла с данным описанием:

% jar cfmv YesNoDialog.jar manifest.stub oreilly/beans Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности/yesno

Смотри также

javakey

Java — интерпретатор Java

Доступность

JDK версии 1.0 и поболее поздних версий.

Синтаксис вызова

Java [опции интерпретатора] имя класса [аргументы программы] – Javag [опции интерпретатора] имя класса [аргументы программы]

Описание

Программка Java представляет собой интерпретатор байт-кода Java, который Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности запускает Java-программы. Программка java_g — это версия интерпретатора с возможностью отладки. Она не оптимизирована и обладает дополнительными средствами для отслеживания процесса выполнения программки.

Программка, которую нужно выполнить, — это класс, обозначенный в аргументе Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности имя_класса. Имя должно быть полным и включать имя пакета, но не содержать расширение class. Отметим, что имена пакета и класса делятся точками, а не знаками косой либо оборотной косой Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности черты, как при указании пути. Если в классе Java отсутствует оператор package, означает, этот класс не принадлежит ни одному пакету, и указывается только его имя. К примеру:

%java david.games.Checkers %java test

В Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности описании параметра -classpath и переменной среды classpath показано, где интерпретатор ^ Java должен находить классы. Класс, обозначенный при помощи аргумента имя_класса, должен содержать способ main () с таким объявлением:

public static void Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности main(String argv[])

Любые аргументы, последующие за именованием класса в командной строке ^ Java, помещаются в массив и передаются способу main () при запуске Java. Если в способе main () создаются какие-либо потоки, то Java производится Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности то того времени, пока не закончится последний поток. В неприятном случае интерпретатор делает тело main () и заканчивает работу. Хотя при вызове Java указывается имя только 1-го класса, интерпретатор автоматом загружает все Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности дополнительные классы, нужные для выполнения программки. Эти файлы классов задаются относительно пути для классов Java, который определяется параметром -classpath, описанным ниже.

По дефлоту Java запускает верификатор байт-кода во всех загруженных Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности по сети классах. Таковой верификатор делает ряд проверок байт-кода загруженного класса, чтоб убедиться, к примеру, в том, что он не разрушает внутренний стек операндов и производит надлежащие проверки, например, ссылок на массивы во время Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности выполнения. Характеристики -verify, -nonverify и -verifyremote управляют процессом верификации байт-кода.

Характеристики

-classpath путь – Определяет путь, который Java употребляет для поиска обозначенного имени класса и всех других загружаемых им классов. Указание Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности этого параметра переопределяет путь, данный по дефлоту, также переменную среды classpath.

Путь — это упорядоченный перечень каталогов и ZIP-файлов, в каких Java отыскивает нареченные классы. В среде Windows сборники и ZIP-файлы (в их Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности могут находиться спецификаторы дисков с внедрением двоеточия) разделены друг от друга точками с запятой, а в среде UNIX — двоеточиями. К примеру, запись -classpath для UNIX смотрится таким макаром:

-classpath/usr/lib/java Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности/classes:.:~/Java/classes

А в среде Windows она имеет последующий вид:

-classpath С:\tools\java\classes.zip;.;D:\users\david\classes

Точка в спецификации пути указывает, что поиск ведется в текущем рабочем каталоге. Сборники Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности и ZIP-файлы просматриваются в порядке их упоминания в перечне. Располагайте стандартные классы Java первыми в строке пути, если вы не желаете, чтоб их случаем перекрыли одноименные классы из других Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности каталогов.

Интерпретатор Java подразумевает отыскать файл класса в иерархии каталогов (либо в имени каталога снутри ZIP-файла), в согласовании с его полным именованием. Таким макаром, в среде UNIX Java загрузит класс j ava Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности. lang. String из файла java/lang/String.class, размещенного в одном из каталогов, которые указаны в пути поиска класса. Аналогично в Windows 95 либо Windows NT (которые поддерживают длинноватые имена) Java Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности будет находить файл java\lang\String.class в одном из данных каталогов либо снутри обозначенного ZIP-файла.

Если не задан ни аргумент -classpath, ни переменная среды classpath, путь поиска класса по дефлоту последующий:

.:$JAVA/classes Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности:$JAVA/lib/classes.zip в среде UNIX

.:$JAVA\classes:$JAVA\lib\classes.zip в среде Windows

где $java — каталог, в каком установлен JDK.

-cs,-checksourse – Оба параметра указывают интерпретатору Java на необходимость Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности проверки времени модификации обозначенного файла класса и соответственного ему файла с начальным текстом. Если файл класса не найден либо устарел, он автоматом перекомпилируется из начального.

-Dимя_свойства=значение – Присваивает свойству из перечня Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности системных параметров значение, равное обозначенному. Java-программа после чего может находить обозначенное свойство по его имени. Существует возможность задать хоть какое количество характеристик -D. К примеру:

%java -Dawt.button.color=gray -Dmy Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.class.pointsize=14 my.class

-debug – Принуждает Java выводить при запуске пароль, который употребляется для того, чтоб разрешать отладчику jdb участвовать в данном сеансе работы интерпретатора. Заметим, что этот пароль не считается неопасным исходя Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности из убеждений шифрования инфы.

-help – Выводит сообщение о формате вызова данной программки.

-1цифра – Задает уровень ведения протокола трассировки. Применяется только для программки java_g.

-ms исходная _память[k | m] – Показывает объем памяти Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, который выделяется под динамически распределяемую область памяти, либо кучу (heap), при запуске интерпретатора. По дефлоту параметр начальная_память задается в б. Данное значение можно указать и в кб, добавив опцию k, либо Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности в мб средством функции m. По дефлоту выделяется 1 Мб. При запуске больших либо активно использующих память приложений (к примеру, компилятора Java) производительность таковой программки можно прирастить, попросив интерпретатор выделить больше памяти Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности при запуске. Исходный объем этой памяти должен быть по последней мере 1000 байтов.

-mх максимальная_память [ k | m ] – Показывает наибольший объем динамически распределяемой области памяти, которую может выделять интерпретатор для хранения объектов Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности и массивов. По дефлоту объем указывается в б, но это значение можно задать и в кб, добавив опцию k, также в мб, используя опцию т. По дефлоту употребляется значение 16 Мб. Нельзя указывать объем наименее 1000 байтов Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

-noasyncgc – Не производит асинхронный сбор мусора. Если этот параметр указан, то ^ Java производит сбор мусора только при нехватке памяти либо при очевидном вызове собирателя мусора. Когда параметр не задан, Java Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности запускает собиратель мусора как отдельный поток с низким ценностью.

-noclassgc – He производит сбор мусора для загруженных классов, которые больше не употребляются. Этот параметр можно задавать исключительно в JDK версии 1.1 и поболее поздних версий.

-noverify Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности – Никогда не проводит проверку байт-кода.

-oss размеры_стека[k | m] – Устанавливает размер стека для кода каждого потока выполнения. По дефлоту параметр размеры_стека указывается в б. Но его можно задать в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности кб, добавив опцию k, либо в мб при помощи функции m. По дефлоту употребляется значение 400 Кб. Размер стека не должен быть меньше 1000 байтов.

-prof[ :файл] – Выводит информацию протоколирования в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности обозначенный файл либо в файл java.prof в текущем каталоге. Формат этой инфы не довольно много документирован. До возникновения JDK 1.1 протокол всегда выводился в файл /java.prof и указать другой файл было Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности нереально.

-ss размер _cmeкa[k | m] – Устанавливает размер стека для каждого потока выполнения. По дефлоту указывается в б. Но можно задать и в кб (функция k), и в мб (функция m). По дефлоту составляет Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности 128 Кб. Размер стека не должен быть наименее 1000 байтов.

-t – Выводит трассировку для всех выполняемых байт-кодов. Применимо только для java_g,

-tm – Выводит трассировку для всех выполняемых способов. Применимо только для java_g Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

-v, -verbose – Выводит на экран сообщение каждый раз, когда Java загружает класс.

-verbosegc – Выводит сообщение всякий раз, когда собиратель мусора высвобождает память.

-verify – Запускает верификатор байт-кода для всех Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности загруженных классов.

-verify remote – Запускает верификатор байт-кода для всех классов, загруженных через загрузчик классов. (Как правило это классы, динамически загруженные из не пользующегося доверием источника.) Для Java данный параметр установлен по Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности дефлоту.

-version – Выводит версию интерпретатора Java и выходит из программки.

Переменные среды

^ CLASSPATH – Задает упорядоченный перечень (с двоеточиями в качестве разделителей для UNIX и точками с запятой — для Windows) каталогов и файлов с Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности расширением zip, в каких интерпретатор Java должен находить определения классов. Когда путь указан при помощи этой переменной среды, Java всегда неявно добавляет в его конец места расположения системных классов. Если данная переменная Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности не задана, по дефлоту перечень содержит текущий каталог и путь к системным классам. Эта переменная переопределяется параметром -classpath. Более подробную информацию об указании пути можно отыскать в приведенном выше описании параметра -classpath Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

Смотри также

javac, jab

javac — компилятор Java

Доступность

JDK версии 1.0 и поболее поздних версий.

Синтаксис вызова

javac [параметры] файлы

Описание

Программка javac компилирует начальные тексты Java (из файлов с расширением java) в байт-код Java (в файлы с расширением Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности class). Компилятор Java сам написан на языке Java.

Компилятор javac может передать в командной строке хоть какое количество файлов начальных текстов Java, чьи имена обязаны иметь расширение Java. Компилятор javac генерирует отдельный Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности файл для каждого класса, определенного в файле начального текста, независимо от количества файлов начального текста. Другими словами, конкретного соответствия меж файлами начальных текстов и файлами классов может и не быть. Отметим также Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, что компилятор просит, чтоб в одном файле начального текста был определен только один public-класс и чтоб название файла (без расширения Java) совпадало с именованием класса (без имени пакета).

По дефлоту javac располагает Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности сделанные файлы классов в том же каталоге, где находились надлежащие файлы с начальными текстами. Это можно переопределить при помощи параметра -d.

Когда файл начального текста ссылается на класс, не определенный в Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности командной строке какого-нибудь другого файла начального текста, javac отыскивает этот класс, используя параметр -classpath. По дефлоту данный параметр содержит только текущий каталог и системные классы. Можно указать дополнительные классы и пакеты, где следует Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности находить класс, используя параметр -classpath либо переменную среды classpath.

Характеристики

-classpath путь – Определяет путь, применяемый javac для поиска классов, на которые имеются ссылки в начальных текстах. Данный параметр переопределяет путь по дефлоту и Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности хоть какой путь, данный переменной среды classpath. Аргумент путь представляет собой упорядоченный перечень каталогов и ZIP-файлов, разделителями в каком служат двоеточия в среде UNIX и точки с запятой в среде Windows Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

Для определения дополнительных каталогов и ZIP-файлов, без переопределения пути по дефлоту, употребляют переменную среды classpath. Более тщательно об этом поведано в описании Java.

-d каталог – Определяет каталог, в каком должны храниться Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности файлы классов. По дефлоту javac помещает сделанные им файлы с расширением class в те же сборники, что и файлы с расширением Java, из которых они откомпилированы. Но если определен флаг -d Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, то обозначенный каталог рассматривается в качестве корневого в иерархии классов, и файлы с расширением class помещаются в этот каталог либо в его соответственный подкаталог зависимо от имени пакета класса. Потому последующая команда Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности:

%javac -d Java/classes java/src/Checkers.Java

помещает файл Checkers.class в каталог Java/classes, если у файла Checkers.java нет оператора package. С другой стороны, когда файл начального текста показывает Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, что он находится в пакете:

package david.games;

файл с расширением class хранится в java/classes/david/games.

Если параметр -d указан, то javac автоматом делает подходящий для хранения класса каталог в соответственном месте.

-depend Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности – Докладывает javaс о необходимости перекомпилировать хоть какой встретившийся ему устаревший файл класса и не только лишь из тех, на которые имеются ссылки в данных файлах с начальными текстами.

-deprecation – Докладывает javac Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности о необходимости выдавать предупреждение при каждом использовании устаревшего API. По дефлоту javac генерирует такое предупреждение только один раз, в программке употребляются устаревшие API. Доступен в JDK версии 1.1 и поболее поздних версий Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

-g – Принуждает javac добавлять в файл класса информацию о номерах строк и локальных переменных для использования ее отладчиками. По дефлоту javac добавляет только номера строк, а при указании параметра -о не Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности делает даже этого.

-Jаргумент – Передает аргумент конкретно интерпретатору Java (пробелы в аргументе должны отсутствовать). Если интерпретатору нужно передать несколько аргументов, следует использовать несколько характеристик -J. Доступен в JDK версии 1.1 и поболее поздних версий Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

-nowarn – Отключает вывод предупреждений. Сообщения об ошибках выводятся, как обычно.

-nowrite – Докладывает javac о том, что не следует создавать файл класса. Файлы с начальными текстами обрабатываются обыденным методом, но результаты таковой обработки не записываются Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности. Этот параметр полезен в этом случае, когда требуется, не выполняя фактической компиляции, проверить, может ли компилироваться некий файл.

-О – Разрешает улучшить файлы классов. Может вынудить javac компилировать способы, объявленные как Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности static, final и private, в машинные коды, обеспечивая более резвое их выполнение. Это достигается ценой роста объемов файлов классов. Данный параметр также предутверждает добавление отладочной инфы о номерах строк в файлы классов.

-verbose Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности – Дает компилятору указание выдавать сообщения о том, что он делает.

Переменные среды

^ CLASSPATH – Содержит перечень (с двоеточиями в качестве разделителей для UNIX и с точками с запятой — для Windows) каталогов и файлов Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности с расширением ziр, в каких javac должна находить определения классов. Когда путь указан при помощи переменной среды, javac всегда неявно добавляет каталог расположения системных классов к концу пути. Если эта переменная среды не указана Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности, то по дефлоту перечень будет содержать текущий каталог и путь к системным классам. Данная переменная переопределяется параметром -classpath.

Смотри также – java, jdb

javadoc — генератор документации Java

Доступность

JDK версии 1.0 и поболее поздних версий Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности.

Синтаксис вызова

javadoc [параметры] имя пакета – javadoc [параметры] названия файлов

Описание – Программка javadoc делает документацию на API в формате HTML для обозначенных пакетов либо отдельных файлов начальных текстов Java, данных в командной строке.

Если в командной Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности строке обозначено имя пакета, javadoc отыскивает соответственный каталог пакета относительно параметра -classpath. Потом анализирует все файлы с начальными текстами в этом каталоге и сформировывает HTML-файл документации для каждого класса и Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности HTML-индекс для классов пакета. По дефлоту HTML-файлы создаются в текущем каталоге. Поменять это положение позволяет параметр -d.

Отметим, что аргумент имя_пакета определяет имя пакета (составляющие, разбитые точками), а Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности не имя каталога. Время от времени появляется необходимость указать параметр -sourcepath, чтоб./avautoc мог отыскать файлы с начальными текстами пакета, если они хранятся не там же, где файлы классов пакета.

Генератор javadoc может вызываться Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности с хоть каким числом файлов начального текста на Java в командной строке. Заметим, что это названия файлов, а не классов, и они указываются с необходимыми компонентами каталогов и с расширением Java. Когда Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности javadoc вызывается таким макаром, он читает обозначенные файлы начальных текстов и делает HTML-файлы (по дефлоту в текущем каталоге), которые обрисовывают каждый public-класс, определенный в обозначенных файлах.

Файлы документации классов, создаваемые Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности javadoc, обрисовывают класс (либо интерфейс) и его иерархию наследования, индекс и каждый член класса, объявленный как public либо protected. Сделанный файл также содержит комменты для документации, которые связаны с классами и их Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности способами, конструкторами и переменными. Комментарий для документации — это комментарий Java, начинающийся знаками / * * и оканчивающийся знаками * /. Он может включать хоть какой HTML-тег (хотя не должен содержать структурных тегов типа либо Лекция 12 Ввод/Вывод - Конспект лекций по курсу java- программирование (часть 1) для специальности

lekciya-16-dihatelnaya-sistema.html
lekciya-16-gosudarstvennoe-upravlenie-ekonomicheskoj-sferoj.html
lekciya-16-kurs-lekcij-chast-2-rekomendovano-metodicheskim-sovetom-dvgups-v-kachestve-uchebnogo-posobiya-habarovsk.html