Fájlok tárolására Androidot dokumentáció orosz
Egy objektum típusú fájl tökéletes olvasás és írás nagy mennyiségű adatot, az elejétől a végéig. Ez lehet például képeket vagy más fájlokat át a hálózaton keresztül.
Most nézzük a végrehajtása az alapvető műveletek alkalmazásával járó fájlokat az alkalmazás. Azt feltételezzük, hogy Ön már ismeri az alapvető jellemzői a Linux fájlrendszer, valamint az API input / output java.io
Válogatás a belső és külső tároló
Minden eszközökön futó Android két terek akták tárolása: külső és belső tárhelyet. Ezek a nevek voltak az első eszközök alapján Android. A legtöbb használt eszközöket felejtő memória (belső tároló) és a cserélhető eszközök, mint például kártyák microSD (külső boltozat). Egyes eszközök állandó tárolási terület között oszlik meg a külső és belső részeken, így még nem SD-kártyát, mi lesz a „belső” és „külső” térben. Így API lényeges, hogy a külső tér a kivehető készülék, vagy sem. A lista az általános tényeket mindkét tér:
Tipp: Bár alkalmazások alapértelmezés szerint telepítve belső tároló, megadhatja a tárolási helyét az attribútum android: installLocation a nyilvánvaló fájlt. A felhasználók értékelni fogják, hogy törődött velük, és állítsa be ezt az opciót, ha a fájl mérete az APK alkalmazás lesz több szabad hely a belső tárolóból. További információ erről a lehetőségről lásd szerelés helye alkalmazásokat.
Megszerzése a jogot, hogy a külső tároló
Írni a külső tároló, akkor kérheti a WRITE_EXTERNAL_STORAGE jogokat a jegyzékfájlhoz:
Azonban, ha az alkalmazás használ írásjog WRITE_EXTERNAL_STORAGE. olvasási engedélyeket kifejezetten definiálja.
Nem kell, hogy megkapja minden további engedélyeket tárolja a fájlokat a belső tárhelyet. Alkalmazások mindig a megfelelő, hogy írjon, és olvassa el a könyvtár belső tároló.
Fájlok mentése a belső tárhely
Ha elment egy fájlt a tárolóból, akkor kap a megfelelő könyvtárba, mint egy objektum típusú fájl. okozva az egyik módszer:
getFilesDir () Visszaadja a fájl objektum, amely a könyvtár a belső tároló az alkalmazás. getCacheDir () Visszaadja a fájl objektum, amely a könyvtár a belső tároló tárolja az ideiglenes cache fájlokat. Ügyeljen arra, hogy távolítsa el az összes fájl, amint már nincs szüksége rájuk, és állítsa ésszerű határt, hogy mennyi memóriát, amit használ, az adott időben, például 1 MB. Ha a rendszer továbbra is kevés a hely a tárolásra, akkor ideiglenes fájlok eltávolítása figyelmeztetés nélkül.
Ahhoz, hogy hozzon létre egy új fájlt egy könyvtárba, akkor a kivitelező fájl (). halad, hogy egy objektum típusú fájl, kapott megfelelő módszerrel:
Mentése külső tárhelyen
Ha egyik előre definiált könyvtár nevét nem illik, akkor getExternalFilesDir () metódus át null. A módszer visszaadja a gyökér könyvtárába a privát alkalmazás található a külső tárolóval.
Ne feledje, hogy getExternalFilesDir () létrehoz egy könyvtárat a könyvtár kell távolítani kérelemmel együtt. Ha a fájlnak elérhetőnek kell lennie eltávolítása után az alkalmazás, mint például a képeket a fényképezőgép, használja getExternalStoragePublicDirectory () metódust.
Fontos, hogy egy könyvtár neve képviselt API konstansokat, mint például DIRECTORY_PICTURES függetlenül attól, hogy getExternalFilesDir módszert alkalmaztuk () vagy getExternalStoragePublicDirectory (). Az előre definiált könyvtár nevét, hogy a rendszer feldolgozza a fájlokat. Például tárolt fájlok a könyvtárban lesz jelölve DIRECTORY_RINGTONES rendszer média szkenner, mint a csengőhang, és nem a zenei fájlokat.
Kérelem tér
Ha előre tudja, hogy mennyi adatot kell menteni, akkor megtudja, ha van elég hely, várakozás nélkül IOException kivétel. keresztül getFreeSpace () vagy getTotalSpace (). Ezek a módszerek lehetővé teszik, hogy tudják, a számos ingyenes és teljes helyet a tároló rész, ill. Ez az információ is hasznos, hogy elkerüljék kitöltő tároló rész felett egy bizonyos küszöbértéket.
A rendszer azonban nem garantálja, hogy akkor is rögzíthet, mint mutatja getFreeSpace () metódust. Ha a tér egy kicsit több, mint szeretné megtartani, vagy ha a fájlrendszer megtelt kevesebb, mint 90%, valószínűleg továbbra is, egyébként jobb tartózkodni.
Megjegyzés: nem kell, hogy ellenőrizze a rendelkezésre álló szabad hely, hogy rögzítse a fájlt. Meg lehet próbálni írni a fájlt, és kezelni a kivételt IOException. Akkor még nem tudom pontosan, hogy mennyi hely van szüksége. Például, ha megváltoztatja a fájl kódolását a mentés előtt, pl átalakítani PNG JPEG, nem lehet tudni, a végleges fájl méretét.
Fájl törlése
Mindig távolítsa el a fájlokat, ha azokat már nem használják. A legegyszerűbb módja, hogy távolítsa el a nyitott fájl - hívja törlése () metódus a következő: