文档对比(java-diff-utils)

发布于:2025-08-16 ⋅ 阅读:(14) ⋅ 点赞:(0)

maven依赖

        <dependency>
            <groupId>io.github.java-diff-utils</groupId>
            <artifactId>java-diff-utils</artifactId>
            <version>4.9</version>
        </dependency>

示例

@SpringBootTest
public class DemoTests {
    @Test
    void test2() throws IOException {
        //原始文件
        List<String> original = Files.readAllLines(new File("F:\\demo\\diff\\demo1.txt").toPath());
        //对比文件
        List<String> revised = Files.readAllLines(new File("F:\\demo\\diff\\demo2.txt").toPath());
        //两文件的不同点
        Patch<String> patch = DiffUtils.diff(original, revised);
        //生成统一的差异格式
        List<String> unifiedDiff = UnifiedDiffUtils.generateUnifiedDiff("test1.txt", "test2.txt", original, patch, 0);
        unifiedDiff.forEach(System.out::println);

    }
}

DiffUtils 相关API

# 用于获取两个文件的不同点
diff(List<T> original, List<T> revised, DiffAlgorithmListener progress) 
diff(List<T> original, List<T> revised) 
diff(List<T> original, List<T> revised, boolean includeEqualParts) 
diff(String sourceText, String targetText, DiffAlgorithmListener progress) 
diff(List<T> source, List<T> target, BiPredicate<T, T> equalizer) 
diff(List<T> original, List<T> revised, DiffAlgorithmI<T> algorithm, DiffAlgorithmListener progress) 
diff(List<T> original, List<T> revised, DiffAlgorithmI<T> algorithm, DiffAlgorithmListener progress, boolean includeEqualParts)
diff(List<T> original, List<T> revised, DiffAlgorithmI<T> algorithm)
diffInline(String original, String revised) 
diff(List<T> original, List<T> revised, DiffAlgorithmI<T> algorithm)
diffInline(String original, String revised) 
# 源文件数据 转 修订后的文件数据
patch(List<T> original, Patch<T> patch) 
# 修订后的文件数据 转 源文件数据
unpatch(List<T> revised, Patch<T> patch)

UnifiedDiffUtils 相关API

parseUnifiedDiff(List<String> diff)
generateUnifiedDiff(String originalFileName, String revisedFileName, List<String> originalLines, Patch<String> patch, int contextSize) 生成统一的差异格式

网站公告

今日签到

点亮在社区的每一天
去签到