Tôi đang cố tải nội dung tệp theo byte trong ứng dụng Android. Tôi đã nhận được tập tin trong thẻ SD bây giờ muốn để có được các tập tin được chọn theo byte. Tôi googled nhưng không thành công như vậy. Vui lòng giúpAndroid: Cách đọc tệp theo byte?
Dưới đây là mã để nhận tệp có phần mở rộng. Thông qua này tôi nhận được các tập tin và hiển thị trong spinner. Khi chọn tệp, tôi muốn nhận tệp theo byte.
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;
}
Lưu ý rằng 'buf.read()' có thể không đọc số byte quý vị yêu cầu. Xem javadoc tại đây: http://docs.oracle.com/javase/6/docs/api/java/io/BufferedInputStream.html#read (byte [], int, int) – vaughandroid
Đừng quên trong tệp kê khai. –
CoolMind
Nếu bạn đọc toàn bộ tập tin trong một lần truy cập, không cần phải gói FileInputStream trong BufferedInputStream -indeed để làm như vậy sẽ sử dụng nhiều bộ nhớ hơn và làm chậm những thứ xuống vì dữ liệu sẽ được sao chép không cần thiết. – Clyde