# HTML Datei bearbeiten



## mäcjava (24. Mai 2009)

Hallo,
ist es möglich eine html Datei von Java aus zu bearbeiten. Also die Datei besteht schon und es sollen Strings an bestimmten Stellen in der html Datei gesetzt werden.

Danke für eure Hilfe !


----------



## faetzminator (24. Mai 2009)

Hast du Platzhalter oä?
Dann kannst du einfach die Datei in einen String lesen und diese per replaceAll oä ersetzen, und die Datei überschreiben.


----------



## mäcjava (24. Mai 2009)

cool, danke für die antwort. Kannst du mir vllt. ein Beispiel nennen oder eine Seite, wo das genauer Beschrieben ist ?


----------



## faetzminator (24. Mai 2009)

Ich würde Commons IO - Home verwenden, das sähe dann etwa so aus:

```
File file = new File("C:/TEMP/somefile.html");
String content = FileUtils.readFileToString(file);
content = content.replaceAll("\{ichBinEinPlatzhalter\}", "nun bin ich hier");
FileUtils.writeStringToFile(file, content);
```
so würde z.B. aus

```
<html>
    <head>
        <title>{ichBinEinPlatzhalter}</title>
    </head>
    <body>
    </body>
</html>
```
das werden:

```
<html>
    <head>
        <title>nun bin ich hier</title>
    </head>
    <body>
    </body>
</html>
```


----------



## mäcjava (24. Mai 2009)

danke faetzminator -- du bist ein Gott - ich verbeuge mich


----------



## mäcjava (25. Mai 2009)

noch eine frage - kannst du mir kurz beschreiben wie ich FileUtils in meinem Projekt verfügbar machen kann ?

1. Ich geh auf die Seite Apache Commons - IO Downloads
2. dann lade ich mir die Version 1.4.zip herunter 
3. und dann ????


----------



## faetzminator (25. Mai 2009)

Dort drin ist eine jar, die fügst du am besten in einen Ordner namens "lib" ins Projekt ein. Falls du Eclipse verwendest, kannst du mit rechter Maustaste aufs Projekt das dort in den Classpath hinzufügen


----------



## mäcjava (26. Mai 2009)

Hi - erstmal danke für deine Hilfe -- Habe das alles in Eclipse gemacht, nun bekommen ich folgenden Fehler:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	FileUtils cannot be resolved
	FileUtils cannot be resolved

???


----------



## =_=_= (26. Mai 2009)

> Exception in thread "main" java.lang.Error: Unresolved compilation problems:
> FileUtils cannot be resolved
> FileUtils cannot be resolved




Scheinbar fehlt Dir eine Klasse/ eine JAR oder aber du hast die benötigte JAR falsch/garnicht eingebunden.

Der Fehler besagt ja schon sehr deutlich, dass "FileUtils" nicht gefunden bzw. genauer nicht "aufgelöst" werden kann.

Schau Dir nochmal genau die Struktur Deines Projektes an ob alle notwendigen Klassen/JARs im Build Path vorhanden sind.

D.h.:

Ist die JAR im Java Build Path unter "Libraries" zu finden? Hat Dein Eclipse Projekt einen Ordner namens "Referenced Libraries" in welchem Deine JAR vorhanden ist?


Gruss


----------



## mäcjava (26. Mai 2009)

Meine Struktur sieht so aus:

http://img40.imageshack.us/img40/6105/lib.gif


----------



## faetzminator (26. Mai 2009)

und "import org.apache.commons.io.FileUtils;" hast du ebenfalls in die Klasse geschrieben (bzw. durch Eclipse schreiben lassen)?


----------



## =_=_= (26. Mai 2009)

Ich habe mir jetzt mal das selbe Paket wie Du geladen, also das zip Archiv: "commons-io-1.4-bin"

Dann habe ich darus die benötigte "*commons-io-1.4.jar*" in irgendein Testprojekt eingefügt über "Properties" und dann "Java Build Path". Danach wird die JAR in meinem Projektbaum unter "Referenced Libraries" wie bei Dir angezeigt.

Wenn ich jetzt in einer Java Testklasse folgende "import" Anweosung durchführe:


```
import org.apache.commons.io.*;
```

...dann steht mir die bei Dir fehlende Klasse *FileUtils* sofort zur Verfügung.

Kann es sein dass Du das benötigte package garnicht importiert hast?? ???:L



Gruss


----------



## mäcjava (26. Mai 2009)

Erstmal danke. Bei einem neuen Projekt gab es plötzlich keine Probleme mehr mit dem import  yeah aber...

jetzt probier ich das ganze aus und knattaratat kommt ne neue Exception:

	File file = new File("C:/Schule/test.html");
		String content = FileUtils.readFileToString(file);
		content = content.replaceAll("\{ichBinEinPlatzhalter\}", "nun bin ich hier");
		FileUtils.writeStringToFile(file, content);

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition
{ichBinEinPlatzhalter}
	at java.util.regex.Pattern.error(Unknown Source)
	at java.util.regex.Pattern.closure(Unknown Source)
	at java.util.regex.Pattern.sequence(Unknown Source)
	at java.util.regex.Pattern.expr(Unknown Source)
	at java.util.regex.Pattern.compile(Unknown Source)
	at java.util.regex.Pattern.<init>(Unknown Source)
	at java.util.regex.Pattern.compile(Unknown Source)
	at java.lang.String.replaceAll(Unknown Source)
	at test.main(test.java:13)

Liebe Community, sagt mir bitte was ich hier wieder falsch gemacht habe ??? Das "\{ichBinEinPlatzhalter\}", ist bei mir rot unterstrichen, aber ich habe das aus eurem Beispiel so übernommen und ohne die \ will er das auch nicht akzeptieren ???


----------



## faetzminator (26. Mai 2009)

Machs mal mit \\ statt \


----------



## mäcjava (26. Mai 2009)

GREAT Danke


----------

