java 下载文件的方法(2)
昨天在写完java下载的文章后就在今天发现了一个问题。通过这个问题也反应出对HttpURLConnection这个类还不了解。趁此机会再添加一些对这个类的了解吧。首先看看前面那断代码在我的程序中出现了什么问题:
在我的程序中有这么一个模块,通过给定的url下载到文件,保存到本地。而文件是binary形式的。例如:http://abc/li.exe,
用下面代码会出现一个问题,就是当这个url被重定向到一个网页时,下载下来的就是网页的内容:
public static File saveToFiles(String destUrl,String path) throws IOException {
final int BUFFER_SIZE = 4096;
System.out.println("file download url is "+destUrl+" path is"+path+"--------------");
FileOutputStream fos = null;
BufferedInputStream bis = null;
HttpURLConnection httpconn = null;
URL url = null;
byte[] buf = new byte[BUFFER_SIZE];
int size = 0;
if(rc.isUseProxy()){ // 此处为读取配置文件的内容,确定是否使用代理
Properties prop = System.getProperties();
//set http proxy addr
prop.setProperty("http.proxyHost", rc.getHttpProxyHost()); &nbs
相关文档:
封装:就是把类的属性和方法实现封装起来,使用户或对象实例看不到具体的方法实现代码和私有属性。
封装的实现方式是接口和访问修饰符。接口只公开类的方法,具体的方法实现是由实现该接口的类完成的,由于接口可以动态绑定,所以通过声明接口和实例化继承的类时调用相关的类的方法。
而另一种实现封装的方式是访问修饰符 ......
如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称为嵌套类(nested class)。想要理解static应用于内部类时的含义,你就必须记住,普通的内部类对象隐含地保存了一个引用,指向创建它的外围类对象。然而,当内部类是static的时,就不是这样了。嵌套类意味着:
1. 要 ......
package search;
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* 读取目录及子目录下指定文件名的路径 并放到一个数组里面返回遍历
*
*
*/
public class FileViewer {
public static void search(String path, String[] Extention, boolean isdepth, ......
/**
* inParam:需要转换的gb2312中文字符 返回:该中文字符对应的UTF-8编码的字符
*/
public static String toUTF(String inPara) {
char temChr;
&n ......
JAVA中用于处理字符串的“三兄弟”
JAVA中用于处理字符串常用的有三个类:java.lang.String、java.lang.StringBuffer、java.lang.StringBuilder,这三者的共同之处都是final类,不允许被继承,这主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着的,且考虑到防止其中的参数被修改影响到其它的应用。 ......