2010-12-13 5 views
0

J'ai des fichiers java dans mon espace de travail. Maintenant, je veux écrire un programme Java qui lirait un fichier texte provenant d'une source différente, une à la fois, ligne par ligne et insérez ces lignes dans des fichiers java respectifs dans l'espace de travail.Java - Lecture/écriture de fichiers

Le fichier texte me dirait quel fichier insérer dans quelle classe ".java".

Par exemple, j'ai AddressType.Java dans mon espace de travail avec getters, setters

Je suis un fichier texte à savoir AddressType.txt qui a des méthodes supplémentaires, des commentaires, des variables d'instance etc etc qui devrait effectivement aller et s'asseoir dans le corps du fichier AddressType.Java. Pour cela, j'ai une logique dans mon esprit et son genre de travail. Je sais lire/écrire dans des fichiers. Voici mon problème. Mon approche consiste à remplacer la parenthèse de fin} dans AddressType.Java par un espace puis à extraire le contenu de AddressType.txt dans AddressType.java, puis à le fermer à nouveau. Quelqu'un peut-il m'aider à trouver EOF} dans un fichier .java en utilisant un programme Java.

Je ne peux pas le faire manuellement car j'ai des centaines de fichiers java et de fichiers texte pour déplacer le contenu.

Aidez-nous s'il vous plaît. J'espère que quelqu'un comprend cette question.

Rien n'est l'exécution. Tout est le temps de compilation lui-même. Je veux dire que je dois fusionner le contenu du fichier txt dans le fichier java, puis compiler et expédier les fichiers java.

Répondre

2

Vous pouvez lire le fichier texte java entier en mémoire et supprimer le dernier} de cette façon. Les classes ne peuvent pas être très grandes. c'est-à-dire moins de quelques MB. Et vous pouvez le faire avec IOUtils.toString() en une ligne. Ceci supprime le dernier} avec n'importe quel nombre d'espaces, d'onglets ou de nouvelles lignes après celui-ci.

+0

Note: ceci suppose que le fichier java a été bien formé pour commencer. ;) –

0

Vous devez compter l'ouverture { s et la fermeture } une fois que vous avez le même numéro que vous avez trouvé la fermeture d'un ...

+0

Merci peter et pgras. Je vais essayer l'un – Shiv

+1

Cela ne fonctionnera pas, sauf si vous êtes prêt à écrire un analyseur lexical pour Java. Vous pourriez avoir ces {s et} s dans des littéraux de chaîne ou des commentaires et il n'est pas garanti qu'ils soient équilibrés là. –

0

Quelqu'un familier avec l'écriture des plugins Eclipse pourrait être en mesure d'étendre le code existant formatter plugin pour le faire.