[Java] J2ME(NetBeans) lettura dati file txt

andryf

Nuovo Utente
22 Feb 2010
3
3
0
Ciao a tutti
Io sto cercando di leggere dati da un file txt da Netbeans 6.5 utilizzando getResourceAsStream (nomefile.txt)
Dove devo mettere il file per poterlo utilizzare con l'emulatore di NetBeans 6.5?
 
  • Like
Reactions: ottofonsuppost

andbin

Nuovo Utente
30 Ago 2004
12
1
0
TO
Ciao a tutti
Io sto cercando di leggere dati da un file txt da Netbeans 6.5 utilizzando getResourceAsStream (nomefile.txt)
Dove devo mettere il file per poterlo utilizzare con l'emulatore di NetBeans 6.5?
Non centra (tanto) NetBeans!
getResource()/getResourceAsStream() trovano la risorsa usando lo stesso criterio che viene usato per trovare le classi .... ovvero cercare lungo il "classpath".

I due metodi tipicamente si invocano su un Class. Se il nome della risorsa inizia con "/" allora la risorsa viene cercata "alla radice" (non in un package), altrimenti la specifica è relativa al package della classe sul cui Class viene invocato il metodo.

Esempio:

TuaClasse.class.getResource("prova/pippo.txt")

Se TuaClasse è completamente qualificato come com.esempio.TuaClasse, allora verrà cercato lungo il classpath un com/esempio/prova/pippo.txt

Se su Windows in classpath c'è es.: C:\Prove;C:\Progetti\miaapp.jar

Allora cercherà prima un

C:\Prove\com\esempio\prova\pippo.txt
poi un
com/esempio/prova/pippo.txt dentro quel miaapp.jar

Il primo che trova ..... è ok.
 
Ultima modifica:
  • Like
Reactions: ottofonsuppost

lespaul

Utente Attivo
30 Lug 2009
91
6
0
www.simplesoft.it
Ciao AndryF, allora devi inserirlo nel package dell'applicazione. Ad esempio se metti 'file.txt' nel package 'prova', puoi accederci in questo modo:
Codice:
InputStream iStream = getClass().getResourceAsStream("/prova/file.txt");
Lo puoi trascinare direttamente con il mouse all'interno del package. Poi dopo fai 'clean and build' del progetto e dopo lancia l'applicazione.

Il file viene incluso direttamente nell' archivio JAR

Ciao
 

andryf

Nuovo Utente
22 Feb 2010
3
3
0
Grazie mille, sono riuscito.
Avrei un' altra domanda:
io ho un file (un dizionario) da leggere e da importare in una stringa per poi analizzare alcune parole

Es:
a
abaco
abecedario
aceto
acuto

devo importare tutto in una stringa per poi suddividere le parole.
Ho visto che in java si può utilizzare lo StringTokenizer ma in J2ME non c'è.
Come posso fare?
(non sono molto esperto, è il primo programma che faccio)
 
  • Like
Reactions: ottofonsuppost

lespaul

Utente Attivo
30 Lug 2009
91
6
0
www.simplesoft.it
Ciao, dunque non potendo utilizzare StringTokenizer si deve optare per una funzione che lavora sulle stringhe a 'basso livello' in java cioè
utilizzando ad esempio questo semplice metodo, che estrae le singole parole separate da un carattere 'char' e li inserisce in un Vector (Vector è supportato in J2ME ):
Codice:
public static Vector parserText(String text, char sep) {
        String line = "";
        Vector vector = new Vector();
        for (int i = 0; i < text.length(); i++) {
            if (text.charAt(i) == sep) {
                vector.add(line);
                line = "";
            } else {
                line += text.charAt(i);

            }

        }
        return vector;
    }
Se ad esempio hai un testo che ha come separatore il return ('\n') puoi fare in questo modo:
Codice:
String text = "a\nabaco\nabecedario\naceto\naceto";
Vector v = parserText(text, '\n');
System.out.println(v);
 
  • Like
Reactions: ottofonsuppost