2010-12-13 17 views
0

Ich habe einige Java-Dateien in meinem Arbeitsbereich. Jetzt möchte ich ein Java-Programm schreiben, das eine Textdatei, die von einer anderen Quelle kommt, nacheinander Zeile für Zeile liest und diese Zeilen in entsprechende Java-Dateien im Arbeitsbereich einfügt.Java - Datei lesen/schreiben

Die Textdatei würde mir sagen, welche Datei in welche ".java" -Klasse einfügen.

Zum Beispiel habe ich AddressType.Java in meinem Arbeitsbereich mit Getter, Setter

ich eine Textdatei nämlich AddressType.txt bekam, die einige zusätzliche Methoden hat, Kommentare, Instanzvariablen etc etc, die tatsächlich gehen und sitzen in der Hauptteil der AddressType.Java-Datei.

Dafür habe ich eine Logik in meinem Kopf und seine Art zu arbeiten. Ich kann Dateien lesen/schreiben. Hier ist mein Problem. Mein Ansatz besteht darin, die Endklammer} in AddressType.Java durch ein Leerzeichen zu ersetzen und dann den Inhalt von AddressType.txt in AddressType.java zu ziehen und dann das} wieder zu schließen.

Kann mir jemand helfen, EOF} in einer .java-Datei mit einem Java-Programm zu finden.

Ich kann dies nicht manuell tun, da ich Hunderte von Java-Dateien und Textdateien habe, um Inhalte zu verschieben.

Bitte helfen. Ich hoffe, jemand versteht diese Frage.

Nichts ist Laufzeit. Alles ist Kompilierzeit selbst. Ich meine, ich muss den Inhalt der TXT-Datei in eine Java-Datei zusammenführen und dann die Java-Dateien kompilieren und versenden.

Antwort

2

Sie können die gesamte Java-Textdatei in den Speicher lesen und das letzte} entfernen. Klassen können nicht sehr groß sein. d.h. weniger als ein paar MB. Und Sie können dies mit IOUtils.toString() in einer Zeile tun.

Dies entfernt die letzten} mit einer beliebigen Anzahl von Leerzeichen, Tabulatoren oder neue Zeilen nach ihm.

+0

Hinweis: Dies setzt voraus, dass die Java-Datei zu Beginn wohlgeformt war. ;) –

0

Sie haben die Öffnung { s zu zählen und die Schließung }, wenn Sie die gleiche Nummer haben Sie die Schließung eines gefunden haben ...

+0

Danke Peter und Pgras. Ich werde versuchen, entweder – Shiv

+1

Dies funktioniert nicht, es sei denn, Sie sind bereit, einen lexikalischen Analysator für Java zu schreiben. Sie könnten diese {s und} s in einigen Zeichenfolgenliteralen oder Kommentaren haben und es ist nicht garantiert, dass sie dort ausgeglichen sind. –

0

Jemand vertraut mit Eclipse-Plugins schreiben könnte der Lage sein, den vorhandenen Code Formatierer zu erweitern Plugin, um dies zu tun.