tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
367
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Aahn Aahn ist offline Rookie
    Registriert seit
    Nov 2009
    Beiträge
    7
    Grüß euch,

    ich brauch hier eure Hilfe, und zwar geht es um ein Programm dass eine HTML Datei einliest, diese mit einem StringTokenizer auf ungültige Chars überprüft (zB: ", =, <, >) und danach in einem neuen Output, Output.html ausgibt.

    folgendes hab ich geschafft, komm aber einfach nicht mehr weiter
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    
    public class UpdateInput {      
        public static void main (String[] args) throws IOException{
        
        String InFilename = "C:\\Documents and Settings\\Administrator\\Desktop\\InPut.html";   
        String OutFilename = "C:\\Temp\\java\\OutPut.html";
        
        FileInputStream in = null;
        FileOutputStream out = null;    
     
        in = new FileInputStream(InFilename);   
        
        int numberBytes = in.available();
        
        System.out.println("numberBytes:" + numberBytes);
        
        
        StringBuffer sb = new StringBuffer(5);
        
        //in = new FileInputStream(InFilename);
        
        int numberOfChars = 0;
        int byteRead = 0;
     
        while ((byteRead = in.read()) != -1) {
            sb.append((char) byteRead);
            numberOfChars++;
        }   
     
        
        
            String results = ("");
            // String validChars = (" '=' + '<' + '>' + 'jpeg'");
            String validChars = ("\"" + "=" +"=" + "=" + "=");
            
            StringTokenizer st = new StringTokenizer(validChars);
            
            
            int i = 0;
            
            while(st.hasMoreTokens())
            {
                String s = st.nextToken();
                System.out.println("Erg: " + s);    
                if(s.equals(validChars)){
                    validChars = "";
                    continue;
                }
                
                results = results + s;
            }
            
            //Momentaner Fehler: NullPointer, einer Variable liefert keinen Wert ins Outputfile zurück. 
                                                                                                                                                                                                                                                                                                                                                                                                
            out = new FileOutputStream(OutFilename);
            out.write(numberOfChars);       
            out.write(results.getBytes());
            
            System.out.println("Zeichen1 " );       
            
            if (in != null) {
                in.close();
            }
            
            System.out.println("Zeichen2 " );
            
            if (out != null) {
                out.close();
            }
            System.out.println("Zeichen3 " );
        }
        
     
    }

    mein Problem ist, dass er die Validchars nicht im Inputfile überprüft und ausgibt bzw diese im Output löscht.

    Hätte jemand eine Idee?

    lg
     

  2. #2
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    StringTokenizer ist nicht dafür gedacht, um ein String auf Chars zu prüfen.

    Es ist dazu gedacht einen String in Tokens("Häppchen") nach einem bestimmten Muster (Trennzeichen) aufzuteilen. Jedoch sollte der StringTokenizer nicht mehr verwendet werden, sondern string.split()
    StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code
    Das was du suchst ist wahrscheinlich ein Test mit Regular Expressions. Schau dir dazu die Klasse Pattern an.
    Geändert von Anime-Otaku (09.11.09 um 14:54 Uhr)
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

  3. #3
    Aahn Aahn ist offline Rookie
    Registriert seit
    Nov 2009
    Beiträge
    7
    ach du schreck...dann ist es also gar net möglich. nun jetzt steh ich an, keine ahnung wie ich diese html datei sonst einlesen - überprüfen - und speichern könnte.
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Zitat Zitat von Anime-Otaku Beitrag anzeigen
    Das was du suchst ist wahrscheinlich ein Test mit Regular Expressions. Schau dir dazu die Klasse Pattern an.
    Hier steht deine Lösung
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Aahn Aahn ist offline Rookie
    Registriert seit
    Nov 2009
    Beiträge
    7
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    
    public class UpdateInput3 {     
        public static void main (String[] args) throws IOException{
        
        String InFilename = "C:\\Documents and Settings\\Administrator\\Desktop\\InPut.html";   
        String OutFilename = "C:\\Temp\\java\\OutPut.html";     
        
        FileInputStream in;
        FileOutputStream out;   
        in = new FileInputStream(InFilename);
        out = new FileOutputStream(OutFilename);
        
        byte[ ] b ;
        Boolean a;
        a = true;   
        
        int numberBytes = 0;
        int len = 0;
        //in.read(b, numberBytes, len);
        
        numberBytes = in.available();
        System.out.println("numberBytes:01 " + in.available());
        numberBytes = in.read();
        
        System.out.println("numberBytes:01.1 " + in.read(b, numberBytes, len ));
        System.out.println("numberBytes:01.2 " + in.read());
        System.out.println("numberBytes:01.3 " + in.read());
        System.out.println("numberBytes:01.3 " + in.read());
        
                        
            StringTokenizer st = new StringTokenizer("hallo", " ,\t");
            
            System.out.println("numberBytes:02 " + st.getClass());
     
            
        
    //      st.hasMoreTokens();
    //      System.out.println("numberBytes:03 " + st.hasMoreTokens());
             
            st.nextToken(); 
    //      System.out.println("numberBytes:04 " + st.nextToken()); 
             
    //      st.countTokens(); 
    //      System.out.println("numberBytes:05 " + st.countTokens());
            
            
            
            
            
            
            
            
            
            
            
            
    //*
            
            System.out.println("Zeichen1 " );       
            
            if (in != null) {
                in.close();
            }
            
            System.out.println("Zeichen2 " );
            
            if (out != null) {
                out.close();
            }
            System.out.println("Zeichen3 " );
            System.out.println("numbserBytes new: " + numberBytes);
        }
        
     
    }


    so siehts jetzt aus, hab das alles nohcmal umgebaut. ich möchte ihm in in.read die bytes usw einlesen lassen, aber er hat da nen fehler .

    wie gesagt ihc möchte nachwievor aus dem eingelesenen html file eine überprüfung starten, die mir invalide chars rauslöscht. ich habe mir gedacht ich überprüf immer jede zeile für zeile.

    anschließend geb ichs aus

    hat jemand ne idee? ich hänge echt
     

Ähnliche Themen

  1. StringTokenizer
    Von kimi im Forum Java
    Antworten: 8
    Letzter Beitrag: 09.12.09, 22:40
  2. StringTokenizer
    Von Leyja im Forum Java
    Antworten: 3
    Letzter Beitrag: 03.01.08, 19:56
  3. StringTokenizer
    Von redbuttler im Forum Java
    Antworten: 3
    Letzter Beitrag: 03.12.07, 23:50
  4. StringTokenizer
    Von tameck im Forum Java
    Antworten: 13
    Letzter Beitrag: 14.11.07, 15:34
  5. StringTokenizer Problem
    Von SuperSonik im Forum Java
    Antworten: 3
    Letzter Beitrag: 20.11.06, 11:55