[Java] reader/ stream werkt niet

Pagina: 1
Acties:

  • BeachPatroller
  • Registratie: November 2002
  • Laatst online: 24-04-2024
Ik wil voor het openen van een tekstbestand alle woorden in een linked list zetten, dit is mij reeds gelukt met het volgende fragmend code
code:
1
2
3
4
5
6
7
8
9
10
11
12
    FileReader in = new FileReader(file);
    //Stop de woorden (onder elkaar) in de lijst
    StreamTokenizer st  = new StreamTokenizer(in);
    st.lowerCaseMode(true);
    int tokenType = 0;
    int aantalTokens = -1;
    do {
        lijst.stopInDeRij(st.sval);  //ontwikkel/test
        tokenType = st.nextToken();
        aantalTokens++;
        } while (tokenType != st.TT_EOF);
   in.close();



Nu heb ik echter nog een string met de hele tekst, deze wil ik via een functie opnieuw in de lijst zetten. De classe en functie is als volgt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
        class BubbleSort {
            boolean swapped = false;
            Lijst lijst = new Lijst();
            String var1, var2, result;

            String sorteer(String a) {
            try {
                Reader r = new StringReader(a);
                StreamTokenizer st = new StreamTokenizer(r);
                //Stop de woorden (onder elkaar) in de lijst

                st.lowerCaseMode(true);
                int tokenType = 0;
                int nTokens = -1;
                st.lowerCaseMode(true);
                do {
                    lijst.stopInDeRij(st.sval); //ontwikkel/test
                    tokenType = st.ttype;
                    nTokens = st.nextToken();
                    nTokens++;
                } while (tokenType != st.TT_EOF);
                result = lijst.popAlleWoordenUitDeRij();
                return result;
                }
                catch (IOException e)
                {
                    return "geen bestand geladen?";
                }

        }

De applicatie doet het zonder foutmeldingen maar result blijft leeg. Als ik er een gewone string inzet doet hij het wel. Ik vermoed dat ik iets verkeerd met de StreamTokenizer doe maar ik weet niet wat. Ziet iemand wat er fout is?

[ Voor 4% gewijzigd door BeachPatroller op 03-03-2005 14:54 ]

Ik ben malle Pietje niet.


  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Als ik het goed zie, probeer je een String in een stream te veranderen, zodat je hem kan gebruiken in StreamTokenizer.

Ik weet niet of dat het probleem is, maar probeer het misschien eens met StringTokenizer (http://java.sun.com/j2se/...util/StringTokenizer.html)

[edit]

Zat me ff te vervelen, hier wat code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
public class TestTokenizer {

    public List lijst = new LinkedList();

    public String[] sorteer( final String a) {
        Enumeration tokenizer = new StringTokenizer(a);
        while (tokenizer.hasMoreElements()) {
            lijst.add(tokenizer.nextElement());
        }
        return (String[]) lijst.toArray(new String[lijst.size()]);
    }
}


Ik hoop dat je er wat aan hebt.

[edit2]
Ik zie net dat er wordt afgeraden om StringTokenizer te gebruiken. Van de bovenstaande link:
StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

The following example illustrates how the String.split method can be used to break up a string into its basic tokens:
code:
1
2
3
     String[] result = "this is a test".split("\\s");
     for (int x=0; x<result.length; x++)
         System.out.println(result[x]);

[ Voor 75% gewijzigd door Nick_S op 03-03-2005 16:06 ]

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • BeachPatroller
  • Registratie: November 2002
  • Laatst online: 24-04-2024
Thanx ik had ook al dergelijke examples gevonden. Jammer dat jbuilder niet zo een mooie 'see also' als Delphi heeft anders had ik deze vraag niet hoeven stellen.

Ik ben malle Pietje niet.


  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Ik ken jBuilder niet (wel van naam, maar nooit mee gewerkt). Ik werk zelf met Eclipse. Hier kun je voor elke jar file, die je include (incl. die van de JDK zelf) de bron code en javadoc aanhangen. Zo kun je altijd snel in je IDE help krijgen bij functies, classes, uhh, alles eigenlijk.

[ Voor 5% gewijzigd door Nick_S op 03-03-2005 16:35 ]

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • BeachPatroller
  • Registratie: November 2002
  • Laatst online: 24-04-2024
Ik heb even met Eclipse gewerkt. Het is mij nooit gelukt om de IDE/ drag & drop componenten van de swing modules werkende te krijgen. Verder weet ik niet wat ik nou precies nodig heb om eclipse goed draaiende te krijgen afgezien van de editer/ compiler. Bij JBuilder krijg je keurig een pulldown te zien als je een classe gebruikt van welke methode je wilt gebruiken. Ik vind Eclipse een mooi initiatief maar dingen als Workbench/ SWT en nog vele andere kreten die men in eerste instantie niet nodig heeft om 1 programmeertal te beoefenen vindt ik het te ingewikkeld om simpele java applicaties mee te maken. Ik zou het graag gebruiken (en dan onder linux liefst 64 bit) als de tutorials wat kleiner en concreter maken over hoe men Eclipse moet gebruiken.

Ik ben malle Pietje niet.


  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Ik werk nu nog niet zo lang met Eclipse (jaartje) maar sinds versie 3.0 (en nu 3.0.1) vind ik het erg fijn werken. Ik heb nu Eclipse een paar keer moeten installeren (Verschillende machines, wel allemaal windows) Het is gewoon uitpakken, paar plugins erin (JBoss-IDE, PMD (Code checker) en Checkstyle (style checker) en verbinding maken met m'n cvs server (op m'n werk of sourceforge) en coden maar.

Ik moet eerlijk toegeven, dat ik onder Eclipse nog niks met Swing of SWT gemaakt hebt, aangezien ik weinig GUI's maak. (De laatste keer dat ik een GUI maakte was in Textpad, zonder code completion, dus dat moet in Eclipse al een grote stap vooruit zijn.)

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'

Pagina: 1