帮助做出这样的事情,我们有一个文本文件,有很多链接到不同的网站(每个链接rasolozhena一个新的行,它们都是以http://test.com的形式写的),你需要在Java程序上进行所有链接并将这些站点的页面保存在文件夹C://中以html格式进行测试,并且这些页面的名称与标记中的名称相同
答案 0 :(得分:1)
这是用于从txt文件中读取URL并在另一个文件中写入的代码,如您在问题中所述。
public static void main(String[] args) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(new File("urlList.txt")));
String url = reader.readLine();
int i = 0;
while (url != null) {
try {
getContent(url, i);
} catch (IOException io) {
System.out.println(io);
}
i++;
url = reader.readLine();
}
} catch (IOException io) {
System.out.println(io);
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
// nothing
}
}
}
}
private static void getContent(String url, int index)
throws MalformedURLException, IOException {
URL pageUrl;
URLConnection conn = null;
pageUrl = new URL(url);
conn = pageUrl.openConnection();
conn.connect();
InputStreamReader in = new InputStreamReader(conn.getInputStream());
BufferedReader reader = new BufferedReader(in);
String htmlFileName = "file_content_" + index + ".txt";
FileWriter fWriter = new FileWriter(htmlFileName);
BufferedWriter bWriter = new BufferedWriter(fWriter);
String urlData = null;
while ((urlData = reader.readLine()) != null) {
bWriter.write(urlData);
bWriter.newLine();
}
bWriter.close();
}
答案 1 :(得分:0)
public class URLReader
{
public static void main(String[] args)
{
try
{
URL pageUrl;
URLConnection conn = null;
pageUrl = new URL("https://www.google.ru/");
conn = pageUrl.openConnection();
conn.connect();
InputStreamReader in = new InputStreamReader(conn.getInputStream());
BufferedReader reader = new BufferedReader(in);
String htmlFileName = "C:\\hello.html";
FileWriter fWriter = new FileWriter(htmlFileName);
BufferedWriter bWriter = new BufferedWriter(fWriter);
String urlData = null;
while ((urlData = reader.readLine()) != null)
{
bWriter.write(urlData);
bWriter.newLine();
}
bWriter.close();
}
catch(IOException io)
{
System.out.println(io);
}
}
}
@Victor这是一个开始,你可以改进代码,一切都如我在问题中描述的那样?请
答案 2 :(得分:0)
前段时间我问了类似的问题:Reading website's contents into string
您可以将其复制到某些FileOutputStream
,而不是将其读入字符串。
在Apache Commons IOUtils
中有一个很好的功能:
copy(InputStream input, OutputStream output)
Copy bytes from an InputStream to an OutputStream.
http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html
如果您还要在网页上下载图片和其他文件,最好使用某些图书馆。
当然,如果你正在学习,你可以自己实现。正则表达式可用于查找HTML文件中图像的链接。