[Java] J2ME(NetBeans) lettura dati file txt

Discussione in 'Java' iniziata da andryf, 22 Febbraio 2010.

  1. andryf

    andryf Nuovo Utente

    Registrato:
    22 Febbraio 2010
    Messaggi:
    3
    Mi Piace Ricevuti:
    3
    Punteggio:
    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?
     
    A ottofonsuppost piace questo elemento.
  2. andbin

    andbin Nuovo Utente

    Registrato:
    30 Agosto 2004
    Messaggi:
    12
    Mi Piace Ricevuti:
    1
    Punteggio:
    0
    Località:
    TO
    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: 23 Febbraio 2010
    A ottofonsuppost piace questo elemento.
  3. lespaul

    lespaul Utente Attivo

    Registrato:
    30 Luglio 2009
    Messaggi:
    91
    Mi Piace Ricevuti:
    6
    Punteggio:
    0
    Home Page:
    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
     
  4. andryf

    andryf Nuovo Utente

    Registrato:
    22 Febbraio 2010
    Messaggi:
    3
    Mi Piace Ricevuti:
    3
    Punteggio:
    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)
     
    A ottofonsuppost piace questo elemento.
  5. lespaul

    lespaul Utente Attivo

    Registrato:
    30 Luglio 2009
    Messaggi:
    91
    Mi Piace Ricevuti:
    6
    Punteggio:
    0
    Home Page:
    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);
    
     
    A ottofonsuppost piace questo elemento.
  6. andryf

    andryf Nuovo Utente

    Registrato:
    22 Febbraio 2010
    Messaggi:
    3
    Mi Piace Ricevuti:
    3
    Punteggio:
    0
    Perfetto sono riuscito grazie mille!
     
    A ottofonsuppost piace questo elemento.
Sto caricando...

Condividi questa Pagina