0

以下代码将页面内容保存到文件中:

import java.net.*;
import java.io.*;



public class url
{
      public static void main(String[] args)
      {
           try
                  {
                    URL PageUrl;
                    URLConnection GetConn = null;
                    GetConn = null;

                     PageUrl = new URL("https://www.google.ru/");
                     GetConn = PageUrl.openConnection();

                    GetConn.connect();

                    InputStreamReader ReadIn = new InputStreamReader(GetConn.getInputStream());
                    BufferedReader BufData = new BufferedReader(ReadIn);
                    String htmlFileName = ("C:\\hello.html");
                    FileWriter FWriter = new FileWriter(htmlFileName);
                    BufferedWriter BWriter = new BufferedWriter(FWriter);
                    String UrlData = null;
                    while ((UrlData = BufData.readLine()) != null)
                    {
                          BWriter.write(UrlData);
                          BWriter.newLine();
                    }
                    BWriter.close();
              }
              catch(IOException io)
              {
                   System.out.println(io);
              }
      }
} 

但是我需要文件与网站的页面具有相同的名称,例如,它必须以某种方式获取网页的名称并将其分配为文件的名称。

4

1 回答 1

2

您可以使用URL.getFile()来获取文件名。IE

...
String htmlFileName = PageURL.getFile();
...

请注意,不同的 URL 可能引用同一个文件:http://example.com/test.html#anch1, http://example.com/test.html, http://example.com/test.html?a=b- 这里所有三个引用同一个test.html文件。在这种情况下,您可能想以某种方式组合getFile(), 。getRef()getQuery()

值得一提的是您的代码中的一些问题:

  1. 变量名以lowerCase代替开始UpperCase
  2. finally以块为单位关闭资源。更好的是,如果您使用 Java 7,请使用try-with-resources
于 2012-11-19T14:29:51.393 回答