Новые книги

Книга, которую вы сейчас держите в руках – это полноценное пошаговое руководство по построению вашей собственной воронки продаж.

? Если вы хотите автоматизировать продажи и получать максимальные конверсии.

? если вы хотите выстроить доверительные отношения с клиентами через емкие, четкие и понятные тексты.

? если в вашей голове уже есть линейка продуктов и услуг, но она пока не реализована и вы не знаете, как это сделать быстро и с минимальными усилиями.

? если у вас хаос в товарах и инфопродуктах, и вы понятия не имеете, что и когда предложить клиенту.

? если вы хотите уделять достаточно времени семье, друзьям, своим близким и быть мобильным.

? если вы действительно хотите зарабатывать «на автомате» от 300 000 руб в месяц, и самое главное – делать это легко и уверенно.

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

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

Вайнерчук показывает выигрышную комбинацию ударов, которая не дает конкурентам никаких шансов опередить вас. Вы сможете разработать высококачественный контент, который будет прекрасно адаптирован к конкретным социальным медиаплатформам (Facebook, Instagram, Twitter, Tumblr и др.) и мобильным устройствам.

Потоки в оперативной памяти

Потоки в оперативной памяти

Оглавление

Работа с файлами
Классы потоков
Стандартные потоки
Потоки и файлы
Запись и чтение потоков
Закрывание потоков
Сброс буферов
Потоки в памяти<
Stream Tokenizer
String Tokenizer
Класс File
Произвольный доступ
Приложение StreamToken
Приложение DirectFile

Операционные системы Windows 95 и Windows NT предоставляют возможность для программиста работать с оперативной памятью как с файлом. Это очень удобно во многих случаях. В частности, файлы, отображаемые на память, можно использовать для передачи данных между одновременно работающими задачами и процессами.

При создании приложений и аплетов Java вы также можете работать с объектами оперативной памяти, как с файлами, а точнее говоря, как с потоками. Так как аплетам запрещено обращаться к файлам, расположенным на локальном диске компьютера, при небходимости создания временных потоков ввода или вывода последние могут быть размещены в оперативной памяти.

Ранее мы отмечали, что в библиотеке классов Java есть три класса, специально предназначенных для создания потоков в оперативной памяти. Это классы ByteArrayOutputStream, ByteArrayInputStream и StringBufferInputStream.

Класс ByteArrayOutputStream

Класс ByteArrayOutputStream создан на базе класса OutputStream. В нем имеется два конструктора, прототипы которых представлены ниже:

public ByteArrayOutputStream();
public ByteArrayOutputStream(
  int size);

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

В классе ByteArrayOutputStream определено несколько достаточно полезных методов. Вот некоторые из них:

public void reset();
public int size();
public byte[] toByteArray();
public void writeTo(OutputStream out);

Метод reset сбрасывает счетчик байт, записанных в выходной поток. Если данные, записанные в поток вам больше не нужны, вы можете вызвать этот метод и использовать память, выделенную для потока, для записи других данных.

С помощью метода size можно определить количество байт данных, записанных в поток.

Метод toByteArray позволяет скопировать данные, записанные в поток, в массив байт. Этот метод возвращает адрес созданного для этой цели массива.

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

Для выполнения форматированного вывода в поток, вы должны создать поток на базе класса DataOutputStream, передав соответствующему конструктору ссылку на поток класса ByteArrayOutputStream.

Класс ByteArrayInputStream

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

public ByteArrayInputStream(byte buf[]);
public ByteArrayInputStream(
  byte buf[], int offset, int length);

Первый конструктор получает через единственный параметр ссылку на массив, который будет использован для создания входного потока. Второй позволяет дополнительно указать смещение offset и размер области памяти length, которая будет использована для создания потока.

Вот несколько методов, определенных в классе ByteArrayInputStream:

public int available();
public int read();
public int read(byte b[],int off, int len);
public void reset();
public long skip(long n);

Наиболее интересен из них метод available, с помощью которого можно определить, сколько байт имеется во входном потоке для чтения.

Обычно класс ByteArrayInputStream используется вместе с классом DataInputStream, что позволяет организовать форматный ввод данных.

Класс StringBufferInputStream

Класс StringBufferInputStream предназначен для создания входного потока на базе текстовой строки класса String. Ссылка на эту строку передается конструктору класса StringBufferInputStream через параметр:

public StringBufferInputStream(String s);

В классе StringBufferInputStream определены те же методы, что и в только что рассмотренном классе ByteArrayInputStream. Для более удобной работы вы, вероятно, создадите на базе потока класса StringBufferInputStream поток класса DataInputStream.