Visualizzazione stampabile
-
Quote:
Originariamente inviato da
DaRkViDe
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:
Se non ti torna qualcosa sono qui
Ciao, grazie per la risposta...
Ho fatto qualche prova.
Io ho provato a scrivere una semplice stringa "ciao" nel file
usando FileWriter e FileReader per rispettivamente leggere e scrivere
su file passandogli come file il file come me l'hai suggerito tu.
---> mi ha restituito NullPointerException
Poi ho messo il file testfile.txt nella cartella /res/raw del progetto e ho fatto nel seguente modo:
File localfs = new File("data/data/esempioScritturaFile.esempio/res/raw");
if(!localfs.exists()){
localfs.mkdir();
Log.e("FILE MANAGER", "CREATA dir: data/data/esempioScritturaFile.esempio/res/raw");
}
File f = new File(localfs+"/testfile.txt");
FileWriter scrivoFile = new FileWriter(f);
scrivoFile.append("prova scrittura su file");
FileReader leggofile = new FileReader(f);
String testoLetto = "";
char[] text = null;
leggofile.read(text);
if(text.toString() != null) testoLetto = text.toString();
else testoLetto ="il null risulta qui";
if(testoLetto != ""){
setText(testoLetto);
}
else setText(testoLetto);
--> Mi restituisce FileNotFoundException mentre il file si trova proprio nella cartella /res/raw....
Non riesco a capire come mai non funziona...
Il fatto è che devo scaricare il codice html da vari siti e poi devo customizzare il codice creando una nuova pagina e quindi è per questo
che tento di scrivere un testo su un file.
-
Quote:
Originariamente inviato da
mikelmanto
Ciao, grazie per la risposta...
Ho fatto qualche prova.
Io ho provato a scrivere una semplice stringa "ciao" nel file
usando FileWriter e FileReader per rispettivamente leggere e scrivere
su file passandogli come file il file come me l'hai suggerito tu.
---> mi ha restituito NullPointerException
Poi ho messo il file testfile.txt nella cartella /res/raw del progetto e ho fatto nel seguente modo:
File localfs = new File("data/data/esempioScritturaFile.esempio/res/raw");
if(!localfs.exists()){
localfs.mkdir();
Log.e("FILE MANAGER", "CREATA dir: data/data/esempioScritturaFile.esempio/res/raw");
}
File f = new File(localfs+"/testfile.txt");
FileWriter scrivoFile = new FileWriter(f);
scrivoFile.append("prova scrittura su file");
FileReader leggofile = new FileReader(f);
String testoLetto = "";
char[] text = null;
leggofile.read(text);
if(text.toString() != null) testoLetto = text.toString();
else testoLetto ="il null risulta qui";
if(testoLetto != ""){
setText(testoLetto);
}
else setText(testoLetto);
--> Mi restituisce FileNotFoundException mentre il file si trova proprio nella cartella /res/raw....
Non riesco a capire come mai non funziona...
Il fatto è che devo scaricare il codice html da vari siti e poi devo customizzare il codice creando una nuova pagina e quindi è per questo
che tento di scrivere un testo su un file.
Allora...ti ho scritto sopra che tu non puoi scrivere i file in res/raw...
La cartella del tuo progetto che tu vedi su eclipse e dove hai messo il file .txt non è la stessa che tu hai creato in
Qui hai creato una cartella nuova, in uno spazio riservato nel fs locale alla tua applicazione ma che non è lo stesso di installazione per essere chiari...per questo il tuo file .txt non c'era dentro e ti sollevava NullPointer (anche se a mio avviso avrebbe dovuto sollevarti un filenotfoundexception forse c'era anche qualche altro problema....)
Puoi solo leggere le risorse di res/raw della tua applicazione ma non in quel modo...cmq per quello che vuoi fare tu non ti serve...
Allora, questa è una semplice Activity che scrive e legge da file in /data.
Tu schiacci il bottone lei scrive, chiude lo stream e poi legge dal file! é semplice!
Funziona, l'ho provata sull'emulatore!
Sotto ti metto anche il layout così capisci meglio.
Bada che in base al tipo di lettura/scrittura che devi fare puoi utilizzare modi differenti stream bufferizzati, buffer di array ecc ecc scegli tu quello che + consono a te...!
Spero di esserti stato utile...
Cià
-
ciao DarKViDe, scusami per l'errore... infatti l'avevi scritto che non si poteva scrivere in "res/raw" ma non so xkè mi sono dimenticato di questo fatto.
Ti ringrazio immensamente per il tuo aiuto, infatti mi stai dando una grande mano.... Provo subito il tuo suggerimento...
Quindi per capire meglio, le cartelle del mio fs locale (ad esempio la cartella "prova" in /data/data) non sono visibili tra le cartelle del mio progetto.... Per vedere fisicamente tale cartella dovrei usare SQLite?
Grazie di tutto