Как получить байт файла в Android - PullRequest
0 голосов
/ 01 августа 2020

В моем приложении я хочу прочитать первые 16 символов файла!
Я пишу ниже коды, но для этого byte[ ] просто покажите мне 43 !
Я хочу покажи мне сначала 16 символов байтов .

Мои коды:

String inputFile = getRootDirPath(context) + "/" + "girnmqlyv0.pdf";
File file = new File(inputFile);
                try {
                    byte[] fileBye = FileUtils.readFileToByteArray(file);
                    Log.e("FileByte", ""+fileBye[16]);
                } catch (IOException e) {
                    e.printStackTrace();
                }

Покажи мне это сообщение в logcat:

E/FileByte: 43

Как получить первые 16 символов файла?

Ответы [ 2 ]

2 голосов
/ 01 августа 2020

Чтобы создать строку из первых 16 байтов, используйте это вместо "+fileBye[16]:

Log.e("FileByte", new String(fileBye, 0, 16));

Обратите внимание, что это преобразует первые 16 байтов в строку в соответствии с кодировка символов по умолчанию, которая является UTF-8 на Android. Если текст в файле содержит символы, отличные от ASCII, 16 байтов не будут преобразованы в 16 символов.

Чтобы извлечь первые 16 байтов в виде массива байтов, вы можете использовать:

byte[] first16 = Arrays.copyOfRange(fileBye, 0, 16);

Или вы можете прочитать только первые 16 байтов вместо всего файла:

byte[] first16 = new byte[16];
try (FileInputStream in = new FileInputStream(inputFile)) {
    in.read(first16);
}
0 голосов
/ 01 августа 2020

определите размер вашего массива следующим образом byte[] bytes = new byte[size];

в вашем случае размер 16

...