2016-12-03 9 views
0

В последнее время я работаю с файлами. Мне было интересно, в чем разница между URI и файлом. В основном в коде:URI vs Производительность файла

List<Uri> uris = new ArrayList<>(); 
    for (Uri uri : uris 
      ) { 
     Bitmap bitmap = BitmapFactory.decodeFile(uri.getPath()); 
    } 

    for (File file : listOfImageFiles 
      ) { 
     Bitmap bitmap = BitmapFactory.decodeFile(file.getPath()); 
} 

Что происходит быстрее? И что рекомендуется использовать? Мне нужно это для получения путей на хранилище, а затем для сохранения этих путей в Strings.

+1

'getPath()' на 'Uri' полезен только в том случае, если схема' Uri' является 'файлом'. В противном случае 'getPath()' бессмысленно. – CommonsWare

ответ

3

Разница в скорости в пренебрежимо малом сравнении с временем, затраченным на чтение данных с диска. Разница будет в наносекундах, где чтение данных займет миллисекунды. Причина, по которой вы используете URI, а не файл, - это представление данных, которые не могут быть в файловой системе, которые могут принадлежать ContentProvider или существуют на удаленном сервере. Если это так, используйте URI. Если вы знаете, что это не так, используйте файл.