
[Android] Zápis do textového souboru
V příloze mám příklad ReadWriteDemo s knihy "Programujeme pro android" který zapisuje do textového souboru funguje v mém mobilu v pořádku problém je v tom že nemohu najít ten soubor "soubor.txt" v mobilu pomocí aplikace Správce souboru v mobilu kde je chyba? díky
Přesně tak, a ještě bych doplnil, pozor při zápisech mimo pracovní adresář.
V Androidech 6 a vyšších si pro to musíš buďto práva vyžádat v aplikaci a nebo externě povolit.
Ta verze androida je menší než 6. Jinak na celém netu jsem nenašel fungující příklad
![]:)](https://static.poradna.net/images/smiley/evilsmile.gif)
to je hrůza já už s toho pomalu nespím
No takhle. Protože ty data zjevně zapisuješ mimo externí paměť.
Android bohužel není tak jednoduchý, jako Windows.
Cituji:
Internal storage:
- It's always available.
- Files saved here are accessible by only your app.
- When the user uninstalls your app, the system removes all your app's files from internal storage.
Zapsat do externí paměti, kde soubor najdeš jde nějak takto:
private void writeNameToFile(String data,Context context) {
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput( Environment.getExternalStorageDirectory() + "/configJmeno.txt", Context.MODE_PRIVATE));
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
MessageBox("Exception File write failed: " + e.toString());
}
}
Terminál , který mám emuluje kartu v adresáři:
/storage/emulated/0
Ono jak vidíš, už jen zapisovat soubory na androidu vyžaduje DOST SI NASTUDOVAT.
Já používám Eclipse terminál tam asi není nebo to jsem úplně nepochopil,další věc do funkce writeNameToFile(String data,Context context)
do parametru String data se do souboru "/configJmeno.txt" zapisují data ale nechápu co je parametr Context context?. Souhlasím s tebou že programování pro android je ze všeho nejtěžší co jsem dělal nebo pokoušel předem díky za pomoc
Ten Eclipse je letitý.
Bohužel i Androidovské aplikace potřebují si nejprve něco nastudovat.
Dělat to metodou pokus-omyl je hodně tvrdá cesta.
Context obsahuje odkaz na tvou aktivitu.
Funkci bys měl zavolat s parametrem: getApplicationContext()
nebo
getContext()
nebo
getBaseContext()
nebo
this
Tady jsem našel video návod https://www.youtube.com/watch?v=V8b-l13L8XY postupoval jsem krok za krokem akorát jsem změnil jméno souboru na pozice.txt nainstaloval jsem do mobilu Aligator S4060 duo a nic žádný soubor jsem pomocí aplikace Total Comanderu nenašel kde může být zakopaný pes ???
díky
poznámka v Eclipse s toho udělám neco.apk překopíruji to na mobil na SD karta a odtud to instaluji.
A jsi si jistý, žes tu aplikaci instaloval na SD kartu?
Spuštění instalátoru z SD karty není totéž.
Video se mi nechce shlížet.
Ten soubor se vytvoří až po klepnutí na buttonek v té miniaplikaci.
Teď řeším jak tu funkci
upravit aby se ten soubor nepřepisoval to znamená obsah souboru zůstával ale nové data se do souboru přidávají na konec souboru díky
Ty tomu programování moc nedáváš, co.
Zkus nahradit:
FileOutputStream fos = new FileOutputStream(f);
na
FileOutputStream fos = new FileOutputStream(f , MODE_APPEND);
Už mi to jde i vytvořit složku a do ní zapsat soubor ale bohužel jen do /storage/emulated/0/msoubory msoubory je moje vytvořená složka tou samou aplikací která vytváří samotný soubor "pozice.txt" ale když to připojím na PC přes usb kabel tak to nenajdu ani složku a v ní ten soubor
a proč se nevytváří na SD kartě když je tam uvedeno Environment.getExternalStorageDirectory? díky
Skús sa pozrieť sem: https://developer.android.com/training/data-storage/files.html#java
Dôležité je zamerať sa na API level 19, alebo API level 18.... podľa toho prípadne upraviť manifest atď...tých prečo/lebo bude samozrejme viac.
O tom, či je SD karta naformátovaná na správny FS a či je namountovaná, samozrejme mlčíš...
Další pozoruhodnost narazil jsem na netu když jsem zadal do googlu "getInternalStorageDirectory()"
Tak se mi zdá každý pes jiná Ves