0

我用java编写的代码正在抓取网站的索引页面,但是当我尝试保存文件时,它会保存一个空白文档。
这是代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import javax.swing.JOptionPane;
import java.io.*;

public class source {

   public static void main(String[] args) throws IOException {

    String filename;

    filename = JOptionPane.showInputDialog("Enter the site");
    PrintWriter outputFile = new PrintWriter("files\\"+filename+".html");

    URL url = new URL("http://"+filename);


    URLConnection con = url.openConnection();
    InputStream is =con.getInputStream();

    BufferedReader br = new BufferedReader(new InputStreamReader(is));

    String line = null;


    while ((line = br.readLine()) != null) {
        System.out.println(line);
        outputFile.println(line);
    }
    System.exit(0);
}
}

我究竟做错了什么?
我需要添加什么来保存 html 吗?

4

3 回答 3

3

据我所知,这里只缺少两件事。

您未能关闭读取器和写入器。

在最后添加这些。

br.close();
outputFile.close();

PS:如果我们也知道输入,它将帮助我们帮助您。

于 2013-07-03T05:26:45.457 回答
1

不要使用System.exit(). 它实际上从来不需要,也绝对不在这里。正如 paulsm4 所说,您缺少outputFile.close()(br.close()在这里无关紧要),因此写入不会刷新到磁盘。

于 2013-07-03T05:24:15.820 回答
0

您忘记关闭/刷新数据。

 BufferedReader br = new BufferedReader(new InputStreamReader(is));

    String line = null;


    while ((line = br.readLine()) != null) {
        System.out.println(line);
        outputFile.println(line);
    }
    br.close();

并且您System.exit()导致JVM关闭。

于 2013-07-03T05:24:19.670 回答