Voglio scrivere in un file e quindi leggere da esso. Durante l'utilizzo del metodo openFileOutput (.., ..) ho capito che questo metodo non è definito in quanto è un metodo astratto. Poi l'ho provato passando il contesto usando getBaseContext(); e l'avviso era disattivato, ma non ho ottenuto il risultato leggendo l'output. Ho anche provato a passare il contesto come parametro nel costruttore, ma anche questo non ha aiutato. Voglio scrivere metodi statici in modo da non dover istanziare la classe ogni volta e la staticità non è la ragione perché ho provato anche senza di essa. Il codice è snippet è indicato di seguito.Scrittura e lettura di una stringa in una memoria interna in Android
Devo specificare un percorso anche durante l'utilizzo della memoria interna? Esiste un'autorizzazione necessaria per scrivere file nella memoria interna? (Ho incluso il permesso di scrivere su storage esterno)
public static void write (String filename,Context c,String string) throws IOException{
try {
FileOutputStream fos = c.openFileOutput(filename, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String read (String filename,Context c) throws IOException{
StringBuffer buffer = new StringBuffer();
FileInputStream fis = c.openFileInput(filename);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
if (fis!=null) {
while ((Read = reader.readLine()) != null) {
buffer.append(Read + "\n");
}
}
fis.close();
return Read;
}
Si desidera restituire buffer.toString() in read()! (BTW, "String Read;" sembra mancare nel tuo snippet di codice, tuttavia non dovresti usare variabili maiuscole maiuscole.) – Stefan
Quindi, come posso farlo? Uno snippet di codice sarà probabilmente di aiuto. – Atinder
return buffer.toString() come ultima riga nel metodo read(). E aggiungi "Leggi stringa;" da qualche parte prima del tuo ciclo while per definire la variabile "Leggi". E dovresti usare lettere minuscole, ad es. Linea di stringa; while ((line = reader.readLine())! = null) buffer.append (line + "\ n"); – Stefan