📄 mql_write2file.java
字号:
package cn.casia.ailab.ldy.cmt;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.zip.GZIPOutputStream;
/* This Class is citing Thunder's work*/
public class Mql_Write2File {
// private String fileName = new String();
// private String fileName = ;
private String fileName = new String();
private String encoding = "gb2312";
public Mql_Write2File(String fileName) {
this.fileName = fileName;
}
/**
* 将网页的内容存入文件夹中
*
* @param urlName
* @param htmlContent
* @throws IOException
*/
public void writeWebDownFile(String htmlContent) throws IOException {
BufferedWriter successFileWrite = null;
try {
successFileWrite = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(fileName, true), encoding));
// 注意,FileOutputStream的构造参数中必须含有true,这样才能续写文件。
// 下载的网页内容
successFileWrite.write(htmlContent);
// 表示这一下载网页的HTML代码已经结束
// String separateMark =
// "\r\n--------######END######--------\r\n\r\n";
// successFileWrite.write(separateMark);
successFileWrite.close();
} catch (IOException ex) {
throw new RuntimeException(ex);
} finally {
if (successFileWrite != null) {
successFileWrite.close();
}
}
}// writeSuccessFile ends.
public void writeNewFile(String htmlContent) throws IOException {
BufferedWriter successFileWrite = null;
try {
successFileWrite = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(fileName, false), encoding));
// 注意,FileOutputStream的构造参数中必须含有true,这样才能续写文件。
// 下载的网页内容
successFileWrite.write(htmlContent);
// 表示这一下载网页的HTML代码已经结束
// String separateMark =
// "\r\n--------######END######--------\r\n\r\n";
// successFileWrite.write(separateMark);
successFileWrite.close();
} catch (IOException ex) {
throw new RuntimeException(ex);
} finally {
if (successFileWrite != null) {
successFileWrite.close();
}
}
}// writeSuccessFile ends.
/**
* 将网页内容采用GZIP压缩形式存入文件中
*
* @param urlName
* URL's name
* @param htmlContent
* 下载的网页内容
* @param encoding
* gzip压缩的编码格式
* @throws IOException
*/
public void writeGZIP(String urlName, String htmlContent, String encoding)
throws IOException {
BufferedOutputStream gzipWrite = null;
try {
gzipWrite = new BufferedOutputStream(new GZIPOutputStream(
new FileOutputStream(fileName, true)));
// 注意,FileOutputStream的构造参数中必须含有true,这样才能续写文件。
// 用下面的字符串分割下载文件中的多个HTML网页代码
String separateMark = "\r\n<url>" + urlName + "</url>\r\n";
// 注意:要将字符串写入压缩文件中,需要先将其转换为byte数组。
byte[] url2Byte = separateMark.getBytes("UTF-8");
gzipWrite.write(url2Byte);
try {
// 将网页内容转换为byte数组,写入压缩文件中
byte[] htmlContent2Byte = htmlContent.getBytes(encoding);
gzipWrite.write(htmlContent2Byte);
} catch (UnsupportedOperationException ex) {// 遇到Sting.getBytes不支持的编码方式
// 按照“UTF-8”编码将网页内容转换为byte数组,写入压缩文件中
byte[] htmlContent2Byte = htmlContent.getBytes("UTF-8");
gzipWrite.write(htmlContent2Byte);
}
// 表示这一下载网页的HTML代码已经结束
separateMark = "\r\n--------######END######--------\r\n\r\n";
byte[] separateMark2Byte = separateMark.getBytes();
gzipWrite.write(separateMark2Byte);
gzipWrite.close();
} catch (IOException ex) {
throw new RuntimeException(ex);
} finally {
if (gzipWrite != null) {
gzipWrite.close();
}
}
}// writeGZIP ends.
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -