第一种方法:通过url生成静态页面
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
public class CmsTest {
public static void main(String[] args) {
try {
/*
* 1、通过url生成静态页面
*/
// 获取url
URL url = new URL("http://www.qq.com");
// 打开链接
URLConnection connection = url.openConnection();
// javase ---> io net inputStream outputStream
// 获取输入流
InputStream input = connection.getInputStream();
/*
* 1、BufferedReader是缓冲流, InputStream是字节流,reader为字符流 可以想象成一个水管,
* 在InputStream外面包了一层, 以供读取方便, 就简单理解成, InputStream这个水管一下只能有一滴水从这里通过,
* 而BufferedReader套在这个水管上,就可以一下读一串水流
* 2、InputStreamReader是字节流通向字符流的桥梁
*/
BufferedReader reader = new BufferedReader(new InputStreamReader(input, "gbk"));
// 实例化StringBuffer类,用于存储
StringBuffer strBuffer = new StringBuffer();
// 如果保证下一个 read() 不阻塞输入,则返回 True,否则返回 false
while (reader.ready()) {
// 连接一个字符串到末尾,并读取一行
strBuffer.append(reader.readLine() + "\n");
}
// 关闭流
reader.close();
input.close();
// 新建文件,用于存储输出代码
File file = new File("d:/qq.html");
// FileOutputStream:文件输出流,用于写入诸如图像数据之类的原始字节的流
// 获取输出流
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "gbk"));
// 数据写入
writer.write(strBuffer.toString());
// 关闭流
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
最后结果:在D盘生成qq.html文件的静态页面。