Untitled

mail@pastecode.io avatarunknown
java
21 days ago
2.2 kB
3
Indexable
Never
    public void init(String countryCode) { // на вход код страны строкой
        InputStream stream = null;            // будем читать файл как поток байт
        ByteArrayOutputStream bos = null;     // писать входной поток байт будем в массив байт в памяти
        try {
            stream = ApplicationLoader.applicationContext.getAssets().open("PhoneFormats.dat"); // открываем файл для чтения
            bos = new ByteArrayOutputStream(); // создаем объект для вывода входного потока в выходной поток как массива байт
            byte[] buf = new byte[1024]; // выделям в памяти буфер на 1кб
            int len; // в переменной сохраняется сколько мы байт прочитали за итерацию
            while ((len = stream.read(buf, 0, 1024)) != -1) { // читаем входной файл по 1кб и пишем в выходной поток
                bos.write(buf, 0, len);
            }
            data = bos.toByteArray(); // создаем из выходного потока ByteArray (массив байт в памяти)
            buffer = ByteBuffer.wrap(data);        // оборачиваем его более высокоуровневым классом ByteBuffer
            buffer.order(ByteOrder.LITTLE_ENDIAN); // указываем как у нас хранятся числа в бинарном формате
        } catch (Exception e) {
            e.printStackTrace(); // если ошибка печатаем стектрейс
            return; 
        } finally {
            try { // в конце чтения закрываем файл
                if (bos != null) {
                    bos.close();
                }
            } catch (Exception e) {
                FileLog.e(e);
            }
            try {
                if (stream != null) {
                    stream.close();
                }
            } catch (Exception e) {
                FileLog.e(e);
            }
        }