2013-04-29 49 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

相關問題