1

あなたの助けが必要です。以下のコードを作成しました。これは、いくつかの Web サイトのコンテンツをローカル hdd に保存します。top_urls.txt には多数の Web サイトが含まれています。

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

 BufferedReader input = new BufferedReader( new  FileReader("top_urls.txt") );

try {

    String content = "contents_urls";
    int i=1;

Scanner freader = new Scanner(input);

while ( freader.hasNextLine() ) {

         String url = freader.nextLine();
         System.out.println(url);
         String out = new Scanner(new URL(url).openStream(), "UTF-8").useDelimiter("\\A").next();
         System.out.println(out);
         String file_name = content +i;
         PrintWriter pwout = new PrintWriter( new FileWriter ("site_"+ i+ ".txt",true) );
         pwout.println(out);    

         i++;
      }
    freader.close();

   } catch (IOException ex) {

     ex.printStackTrace();

 } System.out.println("Done"); 

} 

そのため、Web サイトのコンテンツにファイルが保存されている場合、site_1.txt、site_2.txt などの名前が付けられます。www.google.com.txt など

試し PrintWriter pwout = new PrintWriter( new FileWriter (url+".txt",true) );ましたが、うまくいきません。それを行う方法はありますか?前もって感謝します

4

1 に答える 1

4

あなたの URL はhttp://www.example.com/foo.html. コロンを含むファイル名を作成しても、多くの OS では機能しないと思います (httpたとえば、Windows では、おそらくドライブ文字として解析しようとして失敗するでしょう)。

その場合、上記の URL をファイル名にどのように表示するかを決定し、それに応じて短くする必要があります。これは、プレフィックスと次のスラッシュの間のドメインを取得してhttp://いる可能性があります。または、すべての英数字をアンダースコアに置き換えているか、まったく別のものである可能性があります。

于 2013-06-04T16:45:53.953 に答える