Ich versuche, Dateiinhalt in Bytes in Android-Anwendung zu erhalten. Ich habe jetzt die Datei in SD-Karte bekommen wollen, um die ausgewählte Datei in Bytes zu bekommen. Ich googelte aber keinen solchen Erfolg. Bitte helfen SieAndroid: Wie liest man eine Datei in Bytes?
Unten ist der Code, um Dateien mit der Erweiterung zu erhalten. Dadurch bekomme ich Dateien und zeige in Spinner. Bei Dateiauswahl möchte ich Datei in Bytes bekommen.
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;
}
Hinweis tun, dass 'buf.read()' kann die Anzahl von Bytes nicht lesen Sie anfordern. Sehen Sie sich das Javadoc hier an: http://docs.oracle.com/javase/6/docs/api/java/io/BufferedInputStream.html#read (byte [], int, int) – vaughandroid
Wenn Sie die gesamte Datei mit nur einem Treffer lesen möchten, müssen Sie den FileInputStream nicht in einen BufferedInputStream umbrechen. Dies führt zu mehr Speicher und verlangsamt die Daten, da die Daten unnötigerweise kopiert werden. – Clyde