通过HTTP请求来下载图片或其他二进制文件的程序,下载结果要按下载到的文件类型进行存盘
将代码从服务器的中获取下来的代码,在我之前已经讲过了这里写链接内容
这里我们就直接将源代码稍加改动,加入一个文件并请将builder 写入即可。
import java.net.*;
import java.io.*;
public class Httpconnect{
public static void main(String agrs[]){
try{
URL url=new URL("http://www.4399.com/");//创建一个URL类的实例,并指定网址
URLConnection connection=url.openConnection();//创建实例连接指定URL上的内容
InputStream is=connection.getInputStream();//获取内容的字节流
InputStreamReader isr=new InputStreamReader(is,"utf-8");//将字节流包装为字符串流,并制定编码格式为utf-8
BufferedReader in=new BufferedReader(isr);//创建一个实例用来存放转换后的字符
String line;//定义一个字符串类型变量
StringBuilder builder=new StringBuilder();//创建实例
String filePath = "F:\\CloudMusic\\quyuquan2014.txt";//定义文件的地址
while((line = in.readLine()) != null){
builder.append(line+"\n");//append方法使builder包含line中的所有信息
}
in.close();//关闭流
isr.close();//关闭流
is.close();//关闭流
FileWriter writer = null;//初始化
writer = new FileWriter(new File(filePath), true);
writer.write(builder.toString());//这里必须用到tostring
}
catch(IOException e){
e.printStackTrace();
}
}
}
结论
首先,我们在这里就现在F盘网易云音乐中创建一个.txt文件。
然后我们只需要定义一下文件的地址,并且将装载了服务器的HTML源文件builder写入到文件即可。
这里唯一让注意的是再写入文件内容的时候,因为我们之前用的是
StringBuilder 所以 就不能用writer.writer(builder).
我之前用的话立马报错 说String Builder不支持这样的类型
故需要加上toString 才可以执行。这点需要参考到StringBuilder的具体用法。这里写链接内容