PDA

View Full Version : [J2ME]Scrivere file di testo


agente mm8
24-07-2008, 15:26
Ho da poco iniziato a giocherellare con j2me, fino ad ora con i giochi, ora vorrei cimentarmi un pò anche con i prog.
Per iniziare volevo creare una specie di blocco note, che consente di scrivere e leggere file di testo, e memorizzarli nel formato txt, così da trasferirli su pc.
Ora per leggerli faccio una cosa così:
public String leggiFileDiTesto(String file){
String str = null;
InputStream is = this.getClass().getResourceAsStream(file);
try {
StringBuffer sb = new StringBuffer();
int chr, i = 0;
// Legge tutto il file
while ((chr = is.read()) != -1)
sb.append((char) chr);
str = sb.toString();
}catch (Exception e){
System.out.println("Unable to create stream");
}
return str;
}
l'ho visto su un tutorial per giochi, dove leggeva da un file di testo lo schema del livello.

Ma per scrivere come devo fare?:confused: :help:
Scusate la domanda stupida.

banryu79
24-07-2008, 17:16
Suppongo facendo il contratio di quello che hai fatto per la lettura, dove hai usato un InputStream.

Quindo scrivi il file, probabilmente sarai nella situazione di avere una String piena che rappresenta il contenuto del file: a quel punto dalla String recuperi i caratteri e li passi a un OutputStream che "punta" al file da scrivere.

agente mm8
24-07-2008, 19:23
Ma come faccio a creare una nuova risorsa?
Cioé all'InputStream faccio:
InputStream is = this.getClass().getResourceAsStream(file);
Ma per l'OutputStream cosa faccio?

banryu79
25-07-2008, 08:22
Ciao,
non conosco J2ME, però se io dovessi scrivere un file di testo in J2SE userei la classe FileWriter, se invece dovessi scriverci dei raw byte userei FileOutputStream.

Questo perchè OutputStrem in J2SE è una abstract class e non può essere istanziata: ecco perchè non prevede neanche, ne nel costruttore ne in altri suoi metodi, un parametro che specifichi per esempio che lo stream va a finire nel tal file alla tal posizione.

Ecco la pagina dei javadoc per FileWriter (http://java.sun.com/javase/6/docs/api/)

^TiGeRShArK^
25-07-2008, 12:03
Devi usare la FileConnection API - jsr 75.
In particolare tramite il Connector ti ricavi un oggetto da castare a FileConnection mettendo il percorso corretto e quindi dal FileConnection ottieni Input e Output Stream.
http://www.forum.nokia.com/info/sw.nokia.com/id/de0f933c-0bd3-4143-b62a-ab867a43409a/MIDP_FileConnection_API_Developers_Guide_v2_0_en.zip.html