gpt4 book ai didi

java - 比较两个 DataInputStream 的末尾

转载 作者:行者123 更新时间:2023-12-02 08:12:28 25 4
gpt4 key购买 nike

我必须创建一个应用程序来检索网络上的 xml 文件,并将其存储在 Blackberry 手机的 SD 卡上。 xml 文件由 cron 作业更新。因此,如果数据已添加到此 xml 文件,我希望应用程序下载新的 xml 文件。

现在我使用这段代码比较所有数据文件

public static boolean isSame( DataInputStream input1, DataInputStream input2 ) throws IOException {
boolean error = false;
try {
byte[] buffer1 = new byte[1024];
byte[] buffer2 = new byte[1024];
try {
int numRead1 = 0;
int numRead2 = 0;
while (true) {
numRead1 = input1.read(buffer1);
numRead2 = input2.read(buffer2);
if (numRead1 > -1) {
if (numRead2 != numRead1) return false;
// Otherwise same number of bytes read
if (!Arrays.equals(buffer1, buffer2)) return false;
// Otherwise same bytes read, so continue ...
} else {
// Nothing more in stream 1 ...
return numRead2 < 0;
}
}
} finally {
input1.close();

}
} catch (IOException e) {
error = true; // this error should be thrown, even if there is an error closing stream 2
throw e;
} catch (RuntimeException e) {
error = true; // this error should be thrown, even if there is an error closing stream 2
throw e;
} finally {
try {
input2.close();
} catch (IOException e) {
if (!error) throw e;
}
}
}

它工作完美,但需要很长时间才能运行。

那么是否可以读取文件末尾以查看是否进行了更改,如果是,则重新下载它?

最佳答案

为什么不在服务器上创建一个包含最新更改日期的文件?然后,您的 Java 应用程序仅下载小文件,并根据其内容决定是否必须下载整个 xml 文件。或者这不是一个选择吗?

关于java - 比较两个 DataInputStream 的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7149549/

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