Próbuję uzyskać zawartość pliku w bajtach w aplikacji dla systemu Android. Mam plik na karcie SD, teraz chcę pobrać wybrany plik w bajtach. Szukałem go, ale nie miałem takiego sukcesu. Proszę pomócAndroid: jak czytać plik w bajtach?
Poniżej znajduje się kod do pobierania plików z rozszerzeniem. Przez to dostaję pliki i pokażę w spinie. Przy wyborze pliku chcę pobrać plik w bajtach.
private List<String> getListOfFiles(String path) {
File files = new File(path);
FileFilter filter = new FileFilter() {
private final List<String> exts = Arrays.asList("jpeg", "jpg", "png", "bmp", "gif","mp3");
public boolean accept(File pathname) {
String ext;
String path = pathname.getPath();
ext = path.substring(path.lastIndexOf(".") + 1);
return exts.contains(ext);
}
};
final File [] filesFound = files.listFiles(filter);
List<String> list = new ArrayList<String>();
if (filesFound != null && filesFound.length > 0) {
for (File file : filesFound) {
list.add(file.getName());
}
}
return list;
}
Zauważ, że 'buf.read()' nie może odczytać liczbę bajtów zamówionych. Zobacz javadoc tutaj: http://docs.oracle.com/javase/6/docs/api/java/io/BufferedInputStream.html#read (byte [], int, int) – vaughandroid
Nie zapomnij o w manifeście. –
CoolMind
Jeśli zamierzasz odczytać cały plik za jednym razem, nie ma potrzeby pakowania pliku FileInputStream w BufferedInputStream - w przeciwnym razie będzie zużywać więcej pamięci i spowalniać proces, ponieważ dane będą niepotrzebnie kopiowane. – Clyde