我有一个页面下载,您要下载的文件必须首先从其他服务器使用ftp下载。 我使用此代码从ftp下载:
ftpClient.connect(server, port);
ftpClient.login(user, pass);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
String remoteFile1 = "/Users/A/file.txt";
File downloadFile1 = new File("/Users/B/Downloads/file.txt");
OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1);
outputStream1.close();
如果我使用这个程序,我需要在我的目录/ Users / B / Downloads /中保存file.txt然后我需要使用我的其他代码从/Users/B/Downloads/下载file.txt。 p>
是否可以下载file.txt而不先将其保存在我的目录/ Users / B / Downloads /?
答案 0 :(得分:2)
您可以使用ByteArrayOutputStream而不是BufferedOutputStream。
ByteArrayOutputStream outputStream1 = new ByteArrayOutputStream();
boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1);
String fileContent = outputStream1.toString("UTF-8");
答案 1 :(得分:1)
要在内存中写入流,请使用:ByteArrayOutputStream
new ByteArrayOutputStream();
另一种方式:
BufferedReader reader = null;
String remoteFile1 = "/Users/A/file.txt";
try {
InputStream stream = ftpClient.retrieveFileStream(remoteFile1);
reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
int data;
while ((data = reader.read()) != -1) {
//here, do what ever you want
}
} finally {
if (reader != null) try { reader.close(); } catch (IOException ex) {}
}