そのようなものを作るのを手伝ってください、私たちはテキストファイルを持っています、異なるウェブサイトへのたくさんのリンクがあります(それぞれのリンクrasolozhenaは新しい行であり、それらはhttp://test.comの形式で書かれています)、あなたは歩く必要がありますJavaプログラムで、これらのサイトのページをすべてリンクしてフォルダC:/ / testにhtml形式で保存し、これらのページの名前がタグと同じであることを確認します。
質問する
88 次
3 に答える
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();
}
于 2012-11-19T13:15:54.393 に答える
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これが始まりです、あなたはコードを改善することができます、私が質問で説明したようにすべてがありますか?お願いします
于 2012-11-19T14:29:15.793 に答える
0
私は少し前に同様の質問をしました:ウェブサイトのコンテンツを文字列に読みます
文字列に読み込む代わりに、いくつかにコピーすることができますFileOutputStream
。Apache Commonsには、そのための優れた関数が1つあります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ファイル内の画像へのリンクを見つけるのに役立ちます。
于 2012-11-19T14:34:37.667 に答える