Skip to content

Instantly share code, notes, and snippets.

View Viacheslav77's full-sized avatar

Viacheslav77

View GitHub Profile
@Viacheslav77
Viacheslav77 / Chunker
Created November 23, 2016 22:36
Написать chunk-encoder и chunk-decoder. Использовать InputStream/OutputStream как основу. Усложнил задачу, используя случайную длину блока для дробления на части контента.
package com.company.ChunkerDeChunker;
import java.io.*;
import java.util.Random;
public class Chunker {
private int chunkSize = 20;
private static ByteArrayOutputStream res;
public void process(String content) {
@Viacheslav77
Viacheslav77 / Chunker
Created November 22, 2016 14:35
HTTP Server c кэшем, время жизни которого 20с.
package com.company.HTTPServer;
import java.io.*;
import java.util.List;
public class Chunker implements Processor {
private int chunkSize = 20;
public Chunker(int chunkSize) {
this.chunkSize = chunkSize;
@Viacheslav77
Viacheslav77 / BuildQuery
Last active October 19, 2016 09:42
Написать парсер для Yahoo Finance в режиме XML (format=xml).
package com.company.yahoo.finance.xml;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
@Viacheslav77
Viacheslav77 / Adress
Created October 17, 2016 09:45
Распарсить json из файла.
package com.company.JSON;
class Adress {
private String country;
private String city;
private String street;
public String toString(){
return country +" "+ city +" "+street;
@Viacheslav77
Viacheslav77 / Train
Last active October 15, 2016 13:59
Есть список поездов, представленный с виде XML. 1.Вывести на экран информацию о тех поездах, которые отправляются сегодня с 15:00 до 19:00. 2.Написать код для добавления новых поездов в существующий XML.
package com.comp.Trains.JAXB;
import java.util.Random;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="train")
class Train {
@Viacheslav77
Viacheslav77 / 1.xml
Last active October 15, 2016 14:01
1. Сделать возможность искать значения в XML файле в случае дублирования имен тэгов. 2. Реализовать обработку тэгов типа <tag />.Рекурсия.
<?xml version="1.0"?>
<catalog>
<book>
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
</book>
<book>
@Viacheslav77
Viacheslav77 / FindAnnotation
Created October 10, 2016 13:33
Написать код, который сериализирует и десериализирует в/из файла все значения полей класса, которые отмечены аннотацией @save без использования стандартных средств серилизации.
package SaveFieldsSerializableAnnotation;
import java.lang.reflect.Field;
import java.util.Map;
public class FindFieldAnnotation {
public static void FindAnnotation (TestContainer obj, Map<String, Object> fieldsList ){
Class<?> cls = obj.getClass();
@Viacheslav77
Viacheslav77 / Container
Created October 7, 2016 13:01
Написать код, который сериализирует и десериализирует в/из файла все значения полей класса, которые отмечены аннотацией @save.
package SaveFieldsSerializableAnnotation;
import java.io.Serializable;
public class Container implements Serializable {
private int con;
public Container(int con1){
con=con1;
}
@Viacheslav77
Viacheslav77 / Container
Last active October 6, 2016 21:53
Написать класс TextContainer, который содержит в себе строку. С помощью механизма аннотаций указать 1) в какой файл должен сохраниться текст 2) метод, который выполнит сохранение. Написать класс Saver,который сохранит объект класса TextContainer. @saveto(“c:\\file.txt”) class Container { … @saver public void save(..) {…}
package TextConteiner;
import java.io.FileWriter;
import java.io.IOException;
@SaveTo(nameFile = "d:\\1\\file.txt")
public class Container {
protected String myText;
public Container (String myText){
@Viacheslav77
Viacheslav77 / Main
Created October 5, 2016 10:17
Создать аннотацию Test, которая принимает параметры для процедуры тестирования и передает их в метод, помеченный такой аннотацией.
package tester1;
/*Создать аннотацию Test, которая принимает параметры для процедуры тестирования и передает их в
метод, помеченный такой аннотацией.*/
public class Main {
public static void main (String[] args){
System.out.println (Tester.testSum(SomeClass.class));