<commit_before>package ru.job4j.service;

import java.io.*;

/**
 * Class обработки потоков.
 * @author karetskiy
 * @since 28.02.2017
 * @version 1
 */
public class MyIOService {

    /**
     * Код символа ACII - 0 (ноль) с него начинаются цифры.
     */
    private static int codeBegin = 48;
    /**
     * Код символа ACII - 9 (девять) на ней заканчиваются цифры.
     */
    private static int codeEnd = 57;

    /**
     * Проверяет что в потоке есть четное число.
     * @param in байтовый поток:
     * @return Истина если есть четное число
     */
    boolean isNumber(InputStream in) throws IOException {

        String strNum = "";
        int codeSymb = 0;
        BufferedReader bs = new BufferedReader(new InputStreamReader(in));

        while (codeSymb != -1) {

            codeSymb = (int) bs.read();

            if (codeSymb >= codeBegin && codeSymb <= codeEnd) {
                strNum += (char) codeSymb;
            } else if (!"".equals(strNum)) {
                if (numIsEven(strNum)) {
                    return true;
                } else {
                    strNum = "";
                }
            }
        }
        return numIsEven(strNum);
    }

    /**
     * Проверяет что переданое число четное.
     * @param strNumber стринг проверяемого числа:
     * @return Истина если четное число.
     */
    private boolean numIsEven(String strNumber) {

        if ("".equals(strNumber)) {
            return false;
        } else {
            int number = Integer.valueOf(strNumber);
            return number == number / 2 * 2;
        }
    }
}<commit_msg>Добавлена обертка try-resources.<commit_after>package ru.job4j.service;

import java.io.*;

/**
 * Class обработки потоков.
 * @author karetskiy
 * @since 28.02.2017
 * @version 1
 */
public class MyIOService {

    /**
     * Код символа ACII - 0 (ноль) с него начинаются цифры.
     */
    private static int codeBegin = 48;
    /**
     * Код символа ACII - 9 (девять) на ней заканчиваются цифры.
     */
    private static int codeEnd = 57;

    /**
     * Проверяет что в потоке есть четное число.
     * @param in байтовый поток:
     * @return Истина если есть четное число
     */
    boolean isNumber(InputStream in) throws IOException {

        boolean isEven  = false;
        String strNum   = "";
        int codeSymb    = 0;

        try (BufferedReader bs = new BufferedReader(new InputStreamReader(in))) {

            while (codeSymb != -1) {
                codeSymb = (int) bs.read();

                if (codeSymb >= codeBegin && codeSymb <= codeEnd) {
                    strNum += (char) codeSymb;
                } else if (!"".equals(strNum)) {
                    if (numIsEven(strNum)) {
                        isEven = true;
                        break;
                    } else {
                        strNum = "";
                    }
                }
            }
            isEven = numIsEven(strNum);
        }
        return isEven;
    }

    /**
     * Проверяет что переданое число четное.
     * @param strNumber стринг проверяемого числа:
     * @return Истина если четное число.
     */
    private boolean numIsEven(String strNumber) {

        if ("".equals(strNumber)) {
            return false;
        } else {
            int number = Integer.valueOf(strNumber);
            return number == number / 2 * 2;
        }
    }
}
{'fraction_non_alphanumeric': 0.10555884092253105, 'fraction_numerical': 0.011827321111768185, 'mean_word_length': 1.5609386828160485, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7318716', 'n_tokens_mistral': 1120, 'n_tokens_neox': 1097, 'n_words': 275}