求一段自动生产html的文件代码

小陈雷 发布于 2012/07/26 17:48
阅读 353
收藏 0

我现在想加一段代码,实现下载下来的文件自动生成一个后缀为html的文件,名字也不相同 如下是我代码  

package Xie;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;

public class RetrivePage {
private static HttpClient httpClient = new HttpClient();
// 设置代理服务器
static {
// 设置代理服务器的IP 地址和端口
httpClient.getHostConfiguration().setProxy("192.168.0.53", 8089);
}

public static boolean downloadPage(String path) throws HttpException,
IOException {
InputStream input = null;
OutputStream output = null;
// 得到post 方法
GetMethod postMethod = new GetMethod(path);
// 设置post 方法的参数
// NameValuePair[] postData = new NameValuePair[2];
// postData[0] = new NameValuePair("name", "lietu");
// postData[1] = new
//
// NameValuePair("password", "*****");
// postMethod.addParameters(postData);
// 执行,返回状态码
int statusCode = httpClient.executeMethod(postMethod);
// 针对状态码进行处理(简单起见,只处理返回值为200 的状态码)

// reader(postMethod.getResponseBodyAsStream());
if (statusCode == HttpStatus.SC_OK) {
input = postMethod.getResponseBodyAsStream();
// 得到文件名
// String filename = path.substring(path.lastIndexOf('/') + 1);
String filename = "C:\\Users\\wanli-e5420\\Downloads\\2.html";
// 获得文件输出流
output = new FileOutputStream(filename);
// 输出到文件
int tempByte = -1;
// StringReader r=new StringReader(s)

while ((tempByte = input.read()) > 0) {
output.write(tempByte);
}
// 关闭输入输出流
if (input != null) {
input.close();
}
if (output != null) {
output.close();
}
return true;
}
return false;
}

public static void reader(InputStream in) throws IOException {
if (null == in)
return;
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String tmp = "";
while ((tmp = br.readLine()) != null) {
System.out.print("toString:\t" + tmp);

}
br.close();

}

/**
* 测试代码
* @throws IOException
*/
public static void main(String[] args) throws IOException {

// 抓取lietu 首页,输出
try {
RetrivePage
.downloadPage("http://web.qq.com/" );
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

File f = new File("C:\\Users\\wanli-e5420\\Downloads\\2.html");
Reader reader = null;
reader = new InputStreamReader(new FileInputStream(f)); // 将字节流变为字符流
char c[] = new char[1024];
int len = reader.read(c); // 读取
reader.close(); // 关闭
System.out.println(new String(c, 0, len));

}

}

以下是问题补充:

@小陈雷:求答复 。 在线等 (2012/07/27 14:21)
加载中
0
匆匆里
匆匆里
看一下Freemarker或者Velocity。
0
小陈雷
小陈雷

嗯  我的我看看    

返回顶部
顶部