У класса FileOutputStream — два таких же конструктора, что и у FileInputStream Однако создавать объекты этого класса можно независимо от того, существует файл или нет. При создании нового объекта класс FileOutputStream перед тем, как открыть файл для вывода, сначала создает его. В очередном нашем примере символы, введенные с клавиатуры, считываются из потока System.in - по одному символу за вызов до тех пор, пока не заполнится 12-байтовый буфер. После этого создаются три файла. В первый из них, filel.txt, записываются символы из буфера, но не все, а через один — нулевой, второй и так далее. Во второй, file2.txt, записывается весь ввод, попавший в буфер. И, наконец, в третий файл записывается половина буфера, расположенная в середине, а первая и последняя четверти буфера не выводятся.
import java.io.*;
class FileOutputStreamS {
public static byte getlnput[] throws Exception {
byte buffer[] = new byte[12];
for (int i=0; i<l 2; i++) {
buffer[i] = (byte) System.in.read;
}
return buffer;
}
public static void main(String args[]) throws Exception {
byte buf[] = getlnput;
OutputStream f = new FileOutputStream("filel.txt");
OutputStream f1 = new FileOutputStream("file2.txt");
OutputStream f2 = new FileOutputStream("file3.txt");
Component — это абстрактный класс, который инкапсулирует все атрибуты визуального интерфейса - обработка ввода с клавиатуры, управление фокусом, взаимодействие с мышью, уведомление о входе/выходе из окна, изменения размеров и положения окон, прорисовка своего собственного графического представления, сохранение текущего текстового шрифта, цветов фона и переднего плана (более 10 методов). Перейдем к некоторым конкретным подклассам класса Component.
12.2. Класс Container
Container — это абстрактный подкласс класса Component, определяющий дополнительные методы, которые дают возможность помещать в него другие компоненты, что дает возможность построения иерархической системы визуальных объектов. Container отвечает за расположение содержащихся в нем компонентов с помощью интерфейса LayoutManager.
12.3. Класс Canvas
Основная идея использования объектов Canvas в том, что они являются семантически свободными компонентами. Вы можете придать объекту Canvas любое поведение и любой желаемый внешний вид. Его имя подразумевает, что этот класс является пустым холстом, на котором вы можете «нарисовать» любой компонент — такой, каким вы его себе представляете.
Произведем от Canvas подкласс GrayCanvas, который будет просто закрашивать себя серым цветом определенной насыщенности. Наш апплет будет создавать несколько таких объектов, каждый со своей интенсивностью серого цвета.