JAVA. ЛЕКЦИЯ. 19.07. READER — ОБЁРТКА SYSTEM.OUT.

public static void main(String[] args) throws Exception { //запоминаем настоящий PrintStream в специальную переменную PrintStream consoleStream = System.out; //Создаем динамический массив ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); //создаем адаптер к классу PrintStream PrintStream stream = new PrintStream(outputStream); //Устанавливаем его как текущий System.out System.setOut(stream); //Вызываем функцию, которая ничего не знает о наших манипуляциях printSomething(); //Преобразовываем записанные в [...]

By | Январь 8th, 2017|Categories: Лекции, Уровень 19|Tags: , |0 Comments

JAVA. ЛЕКЦИЯ. 19.04. FILEWRITER/FILEREADER.

public static void main(String[] args) throws Exception { FileReader reader = new FileReader("c:/data.txt"); FileWriter writer = new FileWriter("c:/result.txt"); while (reader.ready()) //пока есть непрочитанные байты в потоке ввода { int data = reader.read(); //читаем один символ (char будет расширен до int) writer.write(data); //пишем один символ (int будет обрезан/сужен до char) } //закрываем потоки после использования reader.close(); [...]

By | Январь 8th, 2017|Categories: Лекции, Уровень 19|Tags: , |0 Comments

JAVA. ЛЕКЦИЯ. 19.02. READER/WRITER.

Код Описание int read(char[] cbuf); - метод сразу читает много символов в буфер (массив символов), пока буфер не заполнится или не закончатся символы там, откуда он их читает. Метод возвращает количество реально прочитанных символов (оно может быть меньше длины массива) int read(); - метод читает один символ и возвращает его как результат. Результат расширяется до int, для красоты. Если доступных символов нет, [...]

By | Январь 8th, 2017|Categories: Лекции, Уровень 19|Tags: , |0 Comments

JAVA. ЛЕКЦИЯ 19.01. АДАПТЕРЫ.

Это схематическое описание «паттерна проектирования адаптер». Суть его в том, что класс MyClass является преобразователем (адаптером) одного интерфейса к другому. class MyClass implements Interface2 { private Interface1 object; MyClass(Interface1 object) { this.object = object; } // тут располагаются методы Interface2, // которые вызывают методы Interface1 } Код из первого(Alpha) фреймворка. AlphaList – это один из интерфейсов, [...]

By | Январь 8th, 2017|Categories: Лекции, Уровень 19|Tags: |0 Comments

JAVA. ЗАДАЧА 19.10.10. ЁБАНЬ.

package com.javarush.test.level19.lesson10.home10; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; /* Исправить ошибку Программа содержит всего 1 ошибку. Найди и исправь ее */ public class Solution { { System.out.println("it's Solution class"); } public static void main(String... args) throws IOException { try ( FileOutputStream outputStream = new FileOutputStream("c:/output.txt"); InputStream is = Solution.class.getClassLoader().getResourceAsStream("/user/resources/avatar.gif"); ) { ; byte[] b = [...]

By | Январь 4th, 2017|Categories: Уровень 19|Tags: |0 Comments

JAVA. ЗАДАЧА 19.10.06. МЕНЯЕМ ЦИФРЫ НА СЛОВА.

package com.javarush.test.level19.lesson10.home06; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; /* Замена чисел 1. В статическом блоке инициализировать словарь map парами [число-слово] от 0 до 12 включительно Например, 0 - "ноль", 1 - "один", 2 - "два" 2. Считать с консоли имя файла 3. Заменить все числа на слова используя словарь map 4. [...]

By | Январь 4th, 2017|Categories: Уровень 19|Tags: |0 Comments

JAVA. ЗАДАЧА 19.10.03+ ПАРСИНГ HTML.

package com.javarush.test.level19.lesson10.bonus03; /* Знакомство с тегами Считайте с консоли имя файла, который имеет HTML-формат Пример: Info about Leela <span xml:lang="en" lang="en"><b><span>Turanga Leela </span></b></span><span>Super</span><span>girl</span> Первым параметром в метод main приходит тег. Например, "span" Вывести на консоль все теги, которые соответствуют заданному тегу Каждый тег на новой строке, порядок должен соответствовать порядку следования в файле Количество пробелов, [...]

By | Декабрь 30th, 2016|Categories: Уровень 19|Tags: |1 Comment

JAVA. ЗАДАЧА 19.10.02. ПЕРЕПИСЫВАНИЕ ФУНКЦИОНАЛА МЕТОДА.

package com.javarush.test.level19.lesson10.bonus02; /* Свой FileWriter Реализовать логику FileConsoleWriter Должен наследоваться от FileWriter При записи данных в файл, должен дублировать эти данные на консоль */ import java.io.*; //чтобы переписать методы, нужно нажать control + O public class FileConsoleWriter extends FileWriter { public FileConsoleWriter(String fileName) throws IOException { super(fileName); } public FileConsoleWriter(String fileName, boolean append) throws IOException [...]

By | Ноябрь 20th, 2016|Categories: Уровень 19|Tags: , |0 Comments

JAVA. ЗАДАЧА 19.10.01+ СОРТИРОВКА ДВУХ ФАЙЛОВ В ОДИН. SAME, ADDED, REMOVED. ЛЮТЫЕ АЛГОРИТМЫ.

package com.javarush.test.level19.lesson10.bonus01; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Scanner; /* Отслеживаем изменения Считать в консоли 2 имени файла - file1, file2. Файлы содержат строки, file2 является обновленной версией file1, часть строк совпадают. Нужно создать объединенную версию строк, записать их в список lines Операции ADDED и REMOVED не могут идти подряд, [...]

By | Ноябрь 17th, 2016|Categories: Уровень 19|Tags: , , |0 Comments

JAVA. ЗАДАЧА 19.10.09. ПОДРОБНОЕ ОПИСАНИЕ РАБОТЫ ОБЁРТКИ SYSTEM.OUT

package com.javarush.test.level19.lesson10.home09; /* Контекстная реклама В методе main подмените объект System.out написанной вами реадер-оберткой Ваша реадер-обертка должна выводить на консоль контекстную рекламу после каждого второго println-а Вызовите готовый метод printSomething(), воспользуйтесь testString Верните переменной System.out первоначальный поток Рекламный текст: "JavaRush - курсы Java онлайн" Пример вывода: first second JavaRush - курсы Java онлайн third fourth [...]

By | Ноябрь 11th, 2016|Categories: Конспекты, Полезные задачи, Уровень 19|Tags: , |0 Comments