我想下载一个网页。我确认了这段代码有效。但我不确定我是否做得很整齐。你能检查一下我的(完整)代码吗?
import java.io.IOException;
import java.io.InputStream;
import java.io.FileOutputStream;
import java.net.URL;
public class GetHTML {
private InputStream in;
private FileOutputStream out;
private String articleName;
public void setArticleName(String articleName) {
this.articleName = articleName;
}
public void download(URL url) throws IOException {
in = url.openStream();
out = new FileOutputStream(articleName + ".html");
byte[] arr = new byte[1024];
while(true) {
int count = in.read(arr);
if(count == -1) { break; }
out.write(arr, 0, count);
}
in.close();
out.close();
}
public static void main(String[] args) throws IOException {
String site1 = "http://codereview.stackexchange.com/questions/";
String site2 = "69";
String site3 = "is-this-implementation-of-shamos-hoey-algorithm-ok";
URL url = new URL(site1 + site2 + "/" + site3);
GetHTML getHTML = new GetHTML();
getHTML.setArticleName("[" + site2 + "]" + site3);
getHTML.download(url);
}
}发布于 2012-05-02 21:08:35
Customer、WikiPage、Account和AddressParser。...类名不应该是动词。例如,我可以简单地将它命名为ArticleDownloader。FileOutputStream out可能只是OutputStream类型。(有效Java,第二版,第52项:通过接口引用对象)IOUtils.copy(InputStream input, OutputStream output) throws IOException。(有效Java,第二版,第47项:了解和使用图书馆)setArticleName方法和articleName字段(因为没有其他方法使用该字段),并将其直接传递给download方法:公共空下载( url,最终字符串articleName)抛出IOException {.}main方法移动到一个单独的类中。(例如,DownloaderMain.)将类与其客户端分离通常是一个好主意。finally块中的流。(有效Java,第二版,第7项:避免终结器)https://codereview.stackexchange.com/questions/11418
复制相似问题