我使用Apache FTPClient
库来管理我的网络服务器的文件。我注意到,当我上传我的SQlite
数据库然后再次下载时,文件已经更改。为什么会这样?
我通过FTP上传的代码如下:
public boolean uploadDatabase() throws IOException
{
ftpClient.enterLocalPassiveMode();
ftpClient.setFileTransferMode(FTP.BINARY_FILE_TYPE);
File databaseFile = new File(databaseFileName);
InputStream inputStream = new FileInputStream(databaseFile);
boolean uploadedSuccessfully = ftpClient.storeFile(remoteDatabaseLocation, inputStream);
inputStream.close();
return uploadedSuccessfully;
}
如果我再次下载该文件并将原始MD5Sum
和下载的FTP
与here中的代码进行比较,则会有所不同。我是使用浏览器还是通过某些Java代码下载文件并不重要,因此显而易见$ go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
上传已损坏,而非下载。
正如在this回答中指出的那样,我已经将文件传输模式设置为二进制,所以我很惊讶为什么有些字节仍然是随机的"插入文件。我使用十六进制编辑器HxD对它们进行了比较。生成的文件哈希始终不一致。