1

我需要你的帮助。我创建了下面的代码,它将某些网站的内容存储在本地硬盘上。top_urls.txt 包含大量网站。

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"); 

} 

所以,当一个网站的内容存储文件被命名为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. 我认为创建包含冒号的文件名不会在许多操作系统上工作(http例如,在 Windows 上,它可能会尝试解析为驱动器号并失败)。

在这种情况下,您需要决定您希望上面的 URL 如何出现在文件名中,并相应地缩短它。这可能只是取http://前缀和下一个斜杠之间的域,或者它可能用下划线替换所有字母数字字符,或者完全是其他东西。

于 2013-06-04T16:45:53.953 回答