0
嗨我想連接FTP並讀取文件並生成該文件的MD5校驗和值,但我面臨流關閉錯誤。這是我的代碼。流關閉錯誤Groovy
import java.io.FileInputStream;
import java.security.MessageDigest;
import java.util.Properties;
import java.io.InputStream;
import java.io.ByteArrayInputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import org.apache.commons.net.ftp.FTPClient;
MessageDigest digest = MessageDigest.getInstance("MD5");
FTPClient ftp=new FTPClient();
ftp.enterLocalPassiveMode();
ftp.connect("address");
ftp.login('username','password');
InputStream iStream=ftp.retrieveFileStream("path of the file");
BufferedInputStream bInf=new BufferedInputStream(iStream);
byte[] buffer = new byte[8192];
int read = 0;
while ((read = bInf.read(buffer)) !=-1)
{
digest.update(buffer, 0, read);
};
byte[] md5sum = digest.digest();
BigInteger bigInt = new BigInteger(1, md5sum)
def x=bigInt.toString(16).padLeft(32,'0')
請幫助我在哪裏出了錯
它說不能調用null對象的方法close()。它是在eachByte(8192){緩衝區,nbytes - > digest.update(緩衝區,0,nbytes) –
不理解你的第二部分評論...無論如何,嘗試一下,我更明確與我'用'變量名稱。什麼版本的Groovy?我用'2.2.2'和'commons-net:commons-net:3.3'來測試'FTPClient',它適用於我... –
其實retrieveFileStream返回null –