gpt4 book ai didi

java - 在 Java 中修改 .torrent 文件

转载 作者:行者123 更新时间:2023-11-29 08:57:44 32 4
gpt4 key购买 nike

我正在编写一个应用程序来下载 torrent 文件并修改它的跟踪器链接(只需替换密码)。但可能我在编码方面遇到了很大的问题,因为当我保存修改后的文件时,它无法在我的 torrent 客户端中打开。

我写了一段代码来下载和修改文件:

@Override
public void exeucte(String link) throws IOException {
FileOutputStream fos = null;
try {
URL website = new URL(link);
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
String fileName = getFileName(link);
fos = new FileOutputStream(fileName);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
replacePassKey(fileName);
} finally {
if (fos != null)
fos.close();
}

}

private void replacePassKey(String fileName) throws IOException {
File originalFile = new File(fileName);
String lines = readLines(originalFile);
String replacedLines = lines.replaceAll("(.*passkey=)(.*)(:comment27.*)", "$1" + PASS_KEY + "$3");
originalFile.delete();
writeReplacedLines(replacedLines, originalFile);
}

private void writeReplacedLines(String replacedLines, File file) throws IOException {
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(file));
bw.write(replacedLines);
} finally {
if (bw != null)
bw.close();
}

}

private String readLines(File originalFile) throws IOException {
RandomAccessFile raf = null;
String lines = null;
try {
raf = new RandomAccessFile(originalFile, "r");
byte[] bytes = new byte[(int) raf.length()];
raf.read(bytes);
lines = new String(bytes, Charset.forName("UTF8"));
} finally {
if (raf != null)
raf.close();
}
return lines;
}

我确信下载有效,因为我可以在 Torrent 客户端中打开未修改的文件(当我在 KomodoEdit 中修改下载的文件时也是如此)。但是当我修改文件并保存替换的字符串时,我的客户无法打开它并提示无效数据。

有人知道吗?也许 UTF8 是错误的,或者我必须更改我的代码的某些部分?

最佳答案

尝试使用各种设置打开它并检查 the wiki page .

关于java - 在 Java 中修改 .torrent 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19326810/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com