快速更新Jar文件中的文本

时间:2014-09-09 01:15:27

标签: java c++ encoding jar exe

我有一个c ++可执行文件,其中嵌入了一个Jar文件作为资源。 Jar中包含一个纯文本文件。我需要使用相同长度的另一行更新明文文件中的单行唯一文本。我认为最好的解决方案是简单地用RandomAccessFile打开Exe并覆盖文本,但是,当我在十六进制编辑器中打开Exe或Jar时,我找不到唯一的文本。我的猜测是文本以某种方式编码。

简而言之:如何更改嵌入在.exe中的jar文件中的纯文本文本?

这是用于覆盖exe / jar中的文本的代码。代码实际上并没有覆盖该行,因为它在找到匹配项之前到达文件末尾。

public static void updateOptions(String line, File target) {
    String code = "long unique text";

    RandomAccessFile raf = new RandomAccessFile(target, "rwd");

    // find the unique text and replace with the new text
    for (long l = 0; l < raf.length(); l++) {
        raf.seek(l);
        boolean equal = true;
        for (int c = 0; c < code.length(); c++) {
            if (raf.readChar() != code.charAt(c)) {
                equal = false;
                break;
            }
        }
        if (equal) {
            // found the match
            raf.seek(l);
            raf.write(line.getBytes());
            raf.write("\n".getBytes());
            break;

        } else {
            // keep looking
            continue;
        }

    }
    raf.close();

}

0 个答案:

没有答案