ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
367
367
EMPFEHLEN
-
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
-
09.11.09 14:52 #2
- 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()
Das was du suchst ist wahrscheinlich ein Test mit Regular Expressions. Schau dir dazu die Klasse Pattern an.StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new codeGeändert von Anime-Otaku (09.11.09 um 14:54 Uhr)
Wäre super wenn ihr euren Code in dieser Form einfügt:
[java]System.out.println("Hello World");[/java]Code java:1
System.out.println("Hello World");
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/
-
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.
-
---------------------------------------------------------------------------------------------------
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
-
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
-
StringTokenizer
Von kimi im Forum JavaAntworten: 8Letzter Beitrag: 09.12.09, 22:40 -
StringTokenizer
Von Leyja im Forum JavaAntworten: 3Letzter Beitrag: 03.01.08, 19:56 -
StringTokenizer
Von redbuttler im Forum JavaAntworten: 3Letzter Beitrag: 03.12.07, 23:50 -
StringTokenizer
Von tameck im Forum JavaAntworten: 13Letzter Beitrag: 14.11.07, 15:34 -
StringTokenizer Problem
Von SuperSonik im Forum JavaAntworten: 3Letzter Beitrag: 20.11.06, 11:55





Zitieren


Login





