java應用程序從網上下載文件
java應用程序與網絡通訊一直是我的弱項,想補一補,就從這一篇開始吧!
以從網上下載一個圖象為例:
import
?java.io.BufferedInputStream;
import ?java.io.BufferedOutputStream;
import ?java.io.File;
import ?java.io.FileOutputStream;
import ?java.io.IOException;
import ?java.net.URL;
import ?java.net.URLConnection;
public ? class ?DownloadFormURL?{
???? public ? static ? void ?main(String[]?args)?{
???????? try ?{
???????????? new ?DownloadFormURL().downloadFile( " http://127.0.0.1:8080/image/f.jpg " ,? new ?File( " F:/image.jpg " ));
????????}? catch ?(IOException?e)?{
????????????e.printStackTrace();
????????}
????}
???? public ? void ?downloadFile(String?sourceURL,?File?targetFile)? throws ?IOException?{
????????URL?url? = ? new ?URL(sourceURL);
????????URLConnection?connection? = ?url.openConnection();
????????java.io.InputStream?inputStream? = ?connection.getInputStream();
????????FileOutputStream?outputStream? = ? new ?FileOutputStream(targetFile);
????????BufferedInputStream?in? = ? null ;
????????BufferedOutputStream?out? = ? null ;
???????? byte ?buffer[]? = ? new ? byte [ 8192 ];
???????? try ?{
????????????in? = ? new ?BufferedInputStream(inputStream,?buffer.length);
????????????out? = ? new ?BufferedOutputStream(outputStream,?buffer.length);
???????????? int ?total? = ? 0 ;
???????????? for ?( int ?bytesRead? = ? 0 ;?(bytesRead? = ?in.read(buffer))? != ? - 1 ;)?{
????????????????out.write(buffer,? 0 ,?bytesRead);
????????????????total? += ?bytesRead;
????????????}
????????}? finally ?{
????????????in.close();
????????????out.close();
????????}
???????? return ;
????}
}
import ?java.io.BufferedOutputStream;
import ?java.io.File;
import ?java.io.FileOutputStream;
import ?java.io.IOException;
import ?java.net.URL;
import ?java.net.URLConnection;
public ? class ?DownloadFormURL?{
???? public ? static ? void ?main(String[]?args)?{
???????? try ?{
???????????? new ?DownloadFormURL().downloadFile( " http://127.0.0.1:8080/image/f.jpg " ,? new ?File( " F:/image.jpg " ));
????????}? catch ?(IOException?e)?{
????????????e.printStackTrace();
????????}
????}
???? public ? void ?downloadFile(String?sourceURL,?File?targetFile)? throws ?IOException?{
????????URL?url? = ? new ?URL(sourceURL);
????????URLConnection?connection? = ?url.openConnection();
????????java.io.InputStream?inputStream? = ?connection.getInputStream();
????????FileOutputStream?outputStream? = ? new ?FileOutputStream(targetFile);
????????BufferedInputStream?in? = ? null ;
????????BufferedOutputStream?out? = ? null ;
???????? byte ?buffer[]? = ? new ? byte [ 8192 ];
???????? try ?{
????????????in? = ? new ?BufferedInputStream(inputStream,?buffer.length);
????????????out? = ? new ?BufferedOutputStream(outputStream,?buffer.length);
???????????? int ?total? = ? 0 ;
???????????? for ?( int ?bytesRead? = ? 0 ;?(bytesRead? = ?in.read(buffer))? != ? - 1 ;)?{
????????????????out.write(buffer,? 0 ,?bytesRead);
????????????????total? += ?bytesRead;
????????????}
????????}? finally ?{
????????????in.close();
????????????out.close();
????????}
???????? return ;
????}
}
小試了一下,還不錯!
posted on 2006-08-14 09:03 nick 閱讀(1722) 評論(6) 編輯 收藏 所屬分類: java基礎