我使用公共FTPCLIENT 我只想要来自ftp服务器的文件内容。 我不想把它写入临时文件。 有没有办法做到这一点。 fileoutputstream应始终指向本地文件。
提前致谢。
答案 0 :(得分:7)
答案 1 :(得分:3)
您应该使用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;
答案 2 :(得分:0)
非常感谢您快速回复..
这确实对我有用.. 这是我试过的。
-
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