FtpClient ftpClient
private String server
private int port
private String userName
private String userPassword
public FtpClientUtil(String server,int port,String userName,String userPassword)
{
this.server=server
this.port=port
this.userName=userName
this.userPassword=userPassword
}
/**
* 链接到服务器
* @return
*/
public boolean open()
{
if(ftpClient!=null&&ftpClient.serverIsOpen())
return true
try
{
ftpClient= new FtpClient()
ftpClient.openServer(server,port)
ftpClient.login(userName, userPassword)
ftpClient.binary()
return true
}
catch(Exception e)
{
e.printStackTrace()
ftpClient=null
return false
}
}
public boolean cd(String dir){
boolean f = false
try {
ftpClient.cd(dir)
} catch (IOException e) {
Logs.error(e.toString())
return f
}
return true
}
/**
* 上传文件到FTP服务器
* @param localPathAndFileName 本地文件目录和文件名
* @param ftpFileName 上传后的文件名
* @param ftpDirectory FTP目录如:/path1/pathb2/,如果目录不存在回自动创建目录
* @throws Exception
*/
public boolean upload(String localDirectoryAndFileName,String ftpFileName,String ftpDirectory)throws Exception {
if(!open())
return false
FileInputStream is=null
TelnetOutputStream os=null
try
{
char ch = ' '
if (ftpDirectory.length() >0)
ch = ftpDirectory.charAt(ftpDirectory.length() - 1)
for (ch == '/' || ch == '\\'ch = ftpDirectory.charAt(ftpDirectory.length() - 1))
ftpDirectory = ftpDirectory.substring(0, ftpDirectory.length() - 1)
int slashIndex = ftpDirectory.indexOf(47)
int backslashIndex = ftpDirectory.indexOf(92)
int index = slashIndex
String dirall = ftpDirectory
if (backslashIndex != -1 &&(index == -1 || index >backslashIndex))
index = backslashIndex
String directory = ""烂激袭铅启
while (index != -1) {
if (index >0) {
String dir = dirall.substring(0, index)
directory = directory + "/"饥兄 + dir
ftpClient.sendServer("XMKD " + directory + "\r\n")
ftpClient.readServerResponse()
}
dirall = dirall.substring(index + 1)
slashIndex = dirall.indexOf(47)
backslashIndex = dirall.indexOf(92)
index = slashIndex
if (backslashIndex != -1 &&(index == -1 || index >backslashIndex))
index = backslashIndex
}
ftpClient.sendServer("XMKD " + ftpDirectory + "\r\n")
ftpClient.readServerResponse()
os = ftpClient.put(ftpDirectory + "/"
+ ftpFileName)
File file_in = new File(localDirectoryAndFileName)
is = new FileInputStream(file_in)
byte bytes[] = new byte[1024]
int i
while ((i = is.read(bytes)) != -1)
os.write(bytes, 0, i)
//清理垃圾
return true
}
catch(Exception e)
{
e.printStackTrace()
return false
}
finally
{
if (is != null)
is.close()
if (os != null)
os.close()
}
}
/**
* 从FTP服务器上下载文件并返回下载文件长度
* @param ftpDirectoryAndFileName
* @param localDirectoryAndFileName
* @return
* @throws Exception
*/
public long download(String ftpDirectoryAndFileName,String localDirectoryAndFileName)throws Exception
{
long result = 0
if(!open())
return result
TelnetInputStream is = null
FileOutputStream os = null
try
{
is = ftpClient.get(ftpDirectoryAndFileName)
java.io.File outfile = new java.io.File(localDirectoryAndFileName)
os = new FileOutputStream(outfile)
byte[] bytes = new byte[1024]
int c
while ((c = is.read(bytes)) != -1)
{
os.write(bytes, 0, c)
result = result + c
}
}
catch (Exception e)
{
throw e
}
finally
{
if (is != null)
is.close()
if (os != null)
os.close()
}
return result
}
/**
* 返回FTP目录下的文件列表
* @param ftpDirectory
* @return
*/
public List<String>getFileNameList(String ftpDirectory)
{
List<String>list = new ArrayList<String>()
if(!open())
return list
try
{
DataInputStream dis = new DataInputStream(ftpClient.nameList(ftpDirectory))
String filename = ""
while((filename=dis.readLine())!=null)
{
list.add(filename)
}
} catch (Exception e)
{
e.printStackTrace()
}
return list
}
/**
* 删除FTP上的文件
* @param ftpDirAndFileName
*/
public boolean deleteFile(String ftpDirAndFileName)
{
if(!open())
return false
ftpClient.sendServer("DELE "+ftpDirAndFileName+"\r\n")
return true
}
/**
* 删除FTP目录
* @param ftpDirectory
*/
public boolean deleteDirectory(String ftpDirectory)
{
if(!open())
return false
ftpClient.sendServer("XRMD "+ftpDirectory+"\r\n")
return true
}
/**
* 关闭链接
*/
public void close()
{
try
{
if(ftpClient!=null&&ftpClient.serverIsOpen())
ftpClient.closeServer()
}catch(Exception e)
{
}
}
}望采纳,谢谢。
http的话就用httpclient
。open后,可以返回一个
InputStream
。这个就是你要读到
文件流
。
原理的话,参考你用浏览器打开这个链接显示的内容。
这个返回的是一个启州宏HTML网页,需要你解析出里面的文字(一般来说取body中间的内容就行)
其实对于这种文件一般用FTP来下载的。楼上写的那个不对,悄册哈哈。
需要的话自己最好去查一下,怎么用,我有代迹闭码,不过告诉你的话也不太好?
URL
url
=
new
URL("http://你的地址")
URLConnection
connection
=
url.openConnection()
InputStream
is
=
connection.getInputStream()
BufferedReader
br
=
new
BufferedReader(new
InputStreamReader(is,"gb2312"))
下面就是解析这个字符串来,自己来吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)