Я использую Commons FTPCLIENT. Мне просто нужно содержимое файла с ftp-сервера. я не хочу записывать его во временный файл. Есть ли способ сделать это. Fileoutputstream всегда должен указывать на локальный файл.
Заранее спасибо.
Я использую Commons FTPCLIENT. Мне просто нужно содержимое файла с ftp-сервера. я не хочу записывать его во временный файл. Есть ли способ сделать это. Fileoutputstream всегда должен указывать на локальный файл.
Заранее спасибо.
Вы должны использовать метод retrieveFilestream вместо метода retriveFile.
FTPClient ftp = new FTPClient();
// configuration code for ftpclient port, server etc
InputStream in = ftp.getretrieveFileStream("remoteFileName");
BufferedInputStream inbf = new BufferedInputStream(in);
byte buffer[] = new byte[1024];
int readCount;
byte result[] = null;
int length = 0;
while( (readCount = inbf.read(buffer)) > 0) {
int preLength = length;
length += readCount;
byte temp[] = new byte[result.length];
result = new byte[length];
System.arraycopy(temp,0,result,0,temp.length);
System.arraycopy(buffer,0,result,preLength,readCount);
}
return result;
Большое спасибо за быстрый ответ ..
И это сработало для меня .. это то, что я пробовал.
-
FTPclient fClient=new FTPclient();
fClient.connect("server");
Fclient.login("user","pwd");
InputStream iStream=fClient.retrieveFileStream("file");
BufferedInputStream bInf=new BufferedInputStream (iStream);
int bytesRead;
byte[] buffer=new byte[1024];
String fileContent=null;
while((bytesRead=bInf.read(buffer))!=-1)
{
fileContent=new String(buffer,0,bytesRead); }
enter code here