Мне нужно отправить файл с телефона на свое устройство (HC-06 на борту). Но мне нужно отправить его по частям. Как я могу читать файл в байтовый массив? У меня есть собственный протокол передачи.Android | Как читать файл в байтовый массив?
ответ
Для того, чтобы читать File
, вам лучше всего позвонить с помощью FileInputStream
.
Вы создаете объект File
, указывающий на ваш файл на устройстве. В качестве параметра вы открываете FileInputStream
с параметром File
.
Вы создаете буфер byte[]
. Здесь вы прочтете свой файл, кусок куска.
Вы читаете в куске за один раз с read(buffer)
. Это возвращает -1, когда конец файла достигнут. В этом цикле вы должны выполнить работу над своим буфером. В вашем случае вы захотите отправить его, используя свой протокол.
Не пытайтесь прочитать весь файл сразу, иначе вы, скорее всего, получите OutOfMemoryError
.
File file = new File("input.bin");
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
byte buffer[] = new byte[4096];
int read = 0;
while((read = fis.read(buffer)) != -1) {
// Do what you want with the buffer of bytes here.
// Make sure you only work with bytes 0 - read.
// Sending it with your protocol for example.
}
} catch (FileNotFoundException e) {
System.out.println("File not found: " + e.toString());
} catch (IOException e) {
System.out.println("Exception reading file: " + e.toString());
} finally {
try {
if (fis != null) {
fis.close();
}
} catch (IOException ignored) {
}
}
Великий ответ с кодом, например, Я попробую это так! –
Этот код работал для меня в проекте андроида, поэтому, надеюсь, он будет работать на вас.
byte[] fileContent = getByte(path); // call the method from there....
private byte[] getByte(String path) {
byte[] getBytes = {};
try {
File file = new File(path);
getBytes = new byte[(int) file.length()];
InputStream is = new FileInputStream(file);
is.read(getBytes);
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return getBytes;
}
- 1. байтовый массив читать и записывать в многопоточности
- 2. Javascript скачать файл байтовый массив
- 3. Преобразуйте файл в байтовый массив, затем в строку, затем в байтовый массив, затем в исходный файл
- 4. записывать содержимое в массив байтов в файл и читать байты из файла обратно в байтовый массив
- 5. Как читать файл в массив
- 6. Преобразование input = файл в байтовый массив
- 7. Переменные байтовый массив в Java
- 8. Преобразование формата байта в байтовый массив android
- 9. строка в байтовый массив
- 10. Как передать байтовый массив readonly?
- 11. длинное преобразование в байтовый массив
- 12. Java - Сделать байтовый массив как скачать
- 13. Преобразование сертификата в байтовый массив
- 14. Добавить значения в байтовый массив
- 15. JNA, возвращающий байтовый массив
- 16. Преобразование строки в байтовый массив
- 17. Android: напишите байтовый массив через NFC
- 18. Как читать двоичный файл в массив длиной 100 байтов
- 19. Как преобразовать байтовый массив в японский символ
- 20. Читать BMP файл в массив
- 21. Как записать массив numpy в байтовый запоминающий файл?
- 22. Преобразование строки в байтовый массив
- 23. golang сервер, отправляющий байтовый массив на Android
- 24. Чтение байтовый массив в Android с помощью ksoap2
- 25. Генерация PDF байтовый массив
- 26. Как объявить 2D-байтовый массив
- 27. Ящик изображения в байтовый массив
- 28. Java - Литая байтовый массив или строку в (виртуальный) Файл
- 29. Преобразование файла в байтовый массив всегда null в Android
- 30. Как читать шестнадцатеричный файл в Numpy массив
Возможный дубликат [Файл в байт \ [\] в Java] (https://stackoverflow.com/questions/858980/file-to-byte-in-java) – amin