以下代码将页面内容保存到文件中:
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);
}
}
}
但我需要该文件与网站页面的名称相同,例如,它必须以某种方式获取网页的名称并将其指定为文件的名称。
答案 0 :(得分:2)
您可以使用URL.getFile()获取文件名。即
...
String htmlFileName = PageURL.getFile();
...
请注意,不同的网址可能会引用同一个文件:http://example.com/test.html#anch1
,http://example.com/test.html
,http://example.com/test.html?a=b
- 这三个网址都指向同一个test.html
文件。在这种情况下,您可能希望以某种方式合并getFile()
,getRef()
和getQuery()
。
值得一提的是代码中的一些问题:
lowerCase
而非UpperCase
; finally
块中的资源。更好的是,如果您使用Java 7,请使用try-with-resources。