从ftp读取文件
依赖:`
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
代码:```
private void downFormFtp(String name) throws Exception
{
FTPClient ftpClient=new FTPClient(); //import org.apache.commons.net.ftp.FTPClient;
ftpClient.connect("192.168.153.2", 21); // 连接ftp,端口默认21
ftpClient.login("zhangsan", "123456"); // 账号密码登陆ftp
if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) //是否连接成功,成功true,失败false
{
ftpClient.changeWorkingDirectory("/"+File); //找到指定目录
FTPFile[] ftpFiles = ftpClient.listFiles();
for (FTPFile ftpFile : ftpFiles) {
InputStream inputStream=ftpClient.retrieveFileStream(name);//根据指定名称获取指定文件
if (inputStream==null){
continue;
}
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream,"GBK"));
String line=null;
StringBuilder stringBuilder=new StringBuilder(150);
while ((line = bufferedReader.readLine()) != null)
{
stringBuilder.append(line + "\n");
}
String context=stringBuilder.toString();
JSONArray objects = JSONArray.parseArray(context);
Map<String,Object> map = (Map<String,Object>) objects.get(0);
// 注意,最后两句必不可少,第一句是关闭流,不用多说,没有第二句的话,循环读取会出现只能读第一个,后面的流都是null的情况
inputStream.close();
ftpClient.completePendingCommand();
}
}
}