Untitled
unknown
java
2 years ago
2.2 kB
12
Indexable
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);
}
}Editor is loading...