Правилно боравене с файлове в Android
FileWriter f = нов FileWriter("impossible.txt");
След това този код ще хвърли изключение:'java.io.FileNotFoundException: /impossible.txt'Докато трябва да го създаде, ако файлът не съществува.
Освен това трябва да се отбележи, че това ограничение не се прилага за файлове, записани на SDCard. Можете да пишете всякакви файлове там без никакви проблеми, въпреки че първо трябва да добавите разрешение за запис към AndroidManifest:
Файлов код на карта:
Файл име на файл = нула; Низ sdState = android.os.Environment.getExternalStorageState(); if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) Файл sdDir = android.os.Environment.getExternalStorageDirectory(); име на файл = нов файл (sdDir, "cache/primer.txt"); > else fileName = context.getCacheDir(); > ако (!fileName.exists()) fileName.mkdirs(); опитайте FileWriter f = new FileWriter(fileName); f.write("здравей свят"); f.flush(); f.close(); > улов (Изключение e)
> Както казах по-рано, приложението за Android е в нещо като пясъчна кутия, изолирано от въздействието на други приложения по подразбиране. За да създадете файл в тази пясъчна среда, използвайте функциятаopenFileOutput(). Искам да изтъкна 2 аргумента:
1. име на файл 2. режим на достъп до него от външни приложения
С първия аргумент всичко е ясно, а за втория има два режима:MODE_WORLD_READABLE и/или MODE_WORLD_WRITEABLE.
И все пак, за да напишете файла, можете да използвате следния код:
окончателен низ TESTSTRING = нов низ ("Здравей Android"); FileOutputStream fOut = openFileOutput("samplefile.txt", MODE_WORLD_READABLE); OutputStreamWriter osw = нов OutputStreamWriter(fOut); // пишетениз към файл osw.write(TESTSTRING); /* проверете дали всичко наистина е написано и затворете файла */ osw.flush(); osw.close();
За да четете файлове, използвайте метода openFileInput():
FileInputStream fIn = openFileInput("samplefile.txt"); InputStreamReader isr = нов InputStreamReader(fIn); char[] inputBuffer = new char[TESTSTRING.length()]; isr.read(inputBuffer); Низ readString = нов низ (inputBuffer);
За да изтриете, използвайте методаdeleteFile()в контекста на приложението/активността. С това бих искал да завърша полезна публикация, благодаря ви за вниманието!