2010-12-13 168 views
0

我的工作區中有一些java文件。現在我想編寫一個java程序,它將逐行讀取來自不同源的文本文件,並逐行插入工作區中相應的java文件中。Java - 文件讀取/寫入

該文本文件會告訴我哪個文件要插入哪個「.java」類。

比如我有AddressType.Java在我的工作區與干將,設定裝置

我有一個文本文件,即AddressType.txt其中有一些額外的方法,評論,實例變量等等,這實際上應該去坐進AddressType.Java文件的主體。

對於這個我有一個在我心中的邏輯和它的工作類型。我知道如何讀取/寫入文件。這是我的問題。我的方法是將AddressType.Java中的結尾括號替換爲一個空格,然後將AddressType.txt的內容拖入AddressType.java中,然後再次關閉該}。

有人可以幫助我如何使用java程序在.java文件中找到EOF}。

我不能這樣做手動,因爲我有100個Java文件和文本文件移動內容。

請幫忙。我希望有人瞭解這個問題。

什麼都不是運行時間。一切都是編譯時間本身。我的意思是我需要將txt文件內容合併到java文件中,然後編譯併發布java文件。

回答

2

您可以將整個java文本文件讀入內存,並刪除最後一個}。類不能很大。即少於幾MB。你可以在一行中使用IOUtils.toString()來做到這一點。

String textWithoutLast = IOUtils.toString(
     new FileInputStream(javaFilename) 
    ).replaceAll("}\\s*$",""); 

這將刪除最後一個}後面有任意數量的空格,製表符或新行。

+0

注意:這裏假定java文件格式良好。 ;) – 2010-12-13 18:18:14

0

你,一旦你有你已經找到了關閉一個相同數量的...

+0

謝謝彼得和pgras。我會嘗試一個 – Shiv 2010-12-13 17:03:04

+1

這是行不通的,除非你願意爲Java編寫一個詞法分析器。你可以將這些{s和}放入一些字符串文字或註釋中,但不能保證它們在那裏平衡。 – 2010-12-13 17:18:00

0

有人熟悉編寫Eclipse插件也許能夠擴展現有的代碼格式化來算開{ S和收盤}插件來做到這一點。