Java有什麼方便的類庫做文件對比嗎?比如:文件Old.txt和New.txt,第一行是列名,需要取出文件中Name字段相同的內容。部分數據如下:
Old.txt |
New.txt |
Name Dept Rachel Sales Ashley R&D Matthew Sales Alexis Sales Megan Marketing |
Name Dept Emily HR Ashley R&D Matthew Sales Alexis Sales Megan Marketing |
期望運算結果如下:
Java不是集合性語言,需大量使用循環和判斷,寫起來會比較長,代碼大概要寫成這樣:
... while ((String lineText = comparedReader.readLine()) != null) { String comparedLine = lineText.trim(); if (searchText.equals(comparedLine)) { lineStr = "###=Equal:" + lineNum + "=###\n"; break; } lineNum++; } rbw.write(lineStr); comparedReader.reset(); ... |
文本對比方面,用集算器SPL會簡單很多,精心設計了一套集合運算領域的函數庫,實現同樣過程代碼更簡潔,比如上面問題,僅2行:
|
A |
1 |
=Old=file("Old.txt").import@t(),New=file("New.txt").import@t() |
2 |
=Old.(Name)^ New.(Name) |
其實還有很多情況用Java處理文本不太方便,甚至大文件對比、關聯計算、入庫等需求,但用集算器SPL卻很簡單,感興趣可以參考:SPL結構化文本計算、結構化文本計算示例(一)、結構化文本計算示例(二)
集算器還很容易嵌入到Java應用程序中,Java如何調用SPL腳本有使用和獲得它的方法。
關於集算器安裝使用、獲得免費授權和相關技術資料,可以參見如何使用集算器。