2013-04-29 62 views
2

老师让我写java来从学校网站上读取html文件并剪切所有不需要的部分(网页中不需要的所有内容),只留下网站中心的公告部分,另存为另一个html文件。如何从网址编辑代码并保存到桌面上的.html文件

我现在可以将html文件读取到java中,但不能编写代码来编辑(剪切不需要的)并另存为html文件。已迄今所做

代码:

import java.io.*; 
import java.net.*; 

public class Html { 

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

      URL chula = new URL("http://www.ise.eng.chula.ac.th"); 
      URLConnection yc = chula.openConnection(); 
      BufferedReader in = new BufferedReader(new InputStreamReader(yc 
        .getInputStream())); 

      String inputLine; 
      while ((inputLine = in.readLine()) != null) { 
       System.out.println(inputLine); 
      } 
      in.close(); 
     } 
    } 
} 
+0

你是什么意思的“削减不必要的路径”? – DeadlyJesus 2013-04-29 12:39:15

+0

你可以粘贴控制台输出吗?所以我们可以知道你的页面html是如何。 – gnanz 2013-04-29 12:48:01

回答

1

变化的System.out.println(inputLine);到:

PrintWriter output = new PrintWriter("newFile.html"); 
    output.println(inputLine); 

这将创建一个新文件,并将inputLine的所有内容输入到新文件中。

我已经编辑你把代码,并认为我找到你需要

,你所要做的,就是用扫描仪的答案,用InputStreamReader中。扫描器将读取文件,或者在这种情况下读取您正在使用的URL。然后,您必须创建一个使用的PrintWriter类的新文件,并更改while循环这样的:

while(in.hasNext()) {} 

这将读取你想要的网址,它会通过文件(URL)的各条线和意志不要停止,直到它结束。然后你必须在while循环中创建一个持有URl信息的String。最后要做的只是将内容写入文件,并且始终确保关闭扫描仪和您正在写入的文件。

下面是代码:

import java.io.*; 
    import java.net.*; 
    import java.util.*; 

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

     URL chula = new URL("http://www.ise.eng.chula.ac.th"); 
     URLConnection yc = chula.openConnection(); 
     //BufferedReader in = new BufferedReader(new InputStreamReader(yc 
      //  .getInputStream())); 
     Scanner in = new Scanner(new InputStreamReader(yc.getInputStream())); 

     PrintWriter output = new PrintWriter("newFile.html"); 
     while (in.hasNext()) { 
      String inputLine = in.nextLine(); 
      output.println(inputLine); 
     } 
     in.close(); 
     output.close(); 
    } 
} 

希望这有助于!

+1

System.out.println在while循环内 - 你注意到了吗? – gnanz 2013-04-29 12:46:48

+0

尝试过,但没有在该文件中的数据。它只是创建一个空文件。 – anonymous 2013-04-29 13:06:55

+0

是否在while循环中放置了output.println(inputLine)? – user2277872 2013-04-29 22:20:57