
Originariamente inviato da
mikelmanto
Ciao a tutti, sono abbastanza nuovo nel mondo di Android.
Devo fare una applicazione e ho la necessità di scrivere e leggere da File.
Ho provato ad usare sia le classi di java per la scrittura su file come FileWriter, FileReader, InputStreamReader.... che quelle utilizzate in Android
ma non funziona.
All'inizio mi usciva "ResourceNotFound" mentre ora esce
"java.lang.IllegalArgumentException: File file:///android_asset/testfile.txt contains a path separatori"
oppure "FileNotFoundException"
Ho provato inoltre a creare il file sia in "res/raw/testfile.txt" oppure nella
cartella "assets" ma nulla... non funziona cioè mi da sempre lo stesso errore.
Utlimo tentativo era sulla "sd" ma neanche questo ha funzionato.
A me basterebbe che funzionasse in /data/data... ma come si fa?
Help.... non so proprio come fare
Ringrazio anticipatamente per le risposte.

Ciao! Non puoi scrivere in res/raw....
Allora per scrivere in data... non ti basta data/data ma ci vuole il nome del package che stai creando es:
Creiamo una cartella files all'interno dello spazio riservato alla tua applicazione nel fs locale:
File localfs = new File("data/data/com.provapackage/files");
if (!localfs.exists()) {
localfs.mkdir();
Log.e("FILE MANAGER",
"CREATA dir: data/data/com.provapackage/files ");
File f =new File(localfs+"/prova.txt");
//Dipende in che modo ci vuoi scrivere...esempio se scriviamo l'input stream di //una connessione
InputStream is = urlConnection.getInputStream();
BufferedInputStream in = new BufferedInputStream(is);
byte[] buff = new byte[1024];
FileOutputStream writef = new FileOutputStream(f, false);
int scritti = 0;
scritti = in.read(buff, 0, 1024);
while (scritti != -1) {
writef.write(buff, 0, scritti);
scritti = in.read(buff, 0, 1024);
}
writef.flush();
writef.close();
is.close();
Se non ti torna qualcosa sono qui