2011-03-29 41 views
1

我想寫一個簡單的程序,讀取URL的前五行,然後以相反的順序打印出來,所以它應該是第5行4,3號線,2號線,1號線讀取URL的前5行,然後按相反順序打印

這裏就是我有這麼遠:

public static void main(String[] arg) throws Exception { 

    BufferedReader keyboard; 
    String inputLine; 

    keyboard = new BufferedReader(new InputStreamReader(System.in)); 

    System.out.print("Please enter the name of a company (without spaces): "); 
    System.out.flush();  /* Make sure the line is printed immediately. */ 
    inputLine = keyboard.readLine(); 

    URL u = new URL("http://www." + inputLine + ".com/"); 
    InputStream ins = u.openStream(); 

    InputStreamReader isr = new InputStreamReader(ins); 
    BufferedReader readURL = new BufferedReader(isr); 

什麼是最優雅的方式做我想要做什麼?

+0

你想幹什麼? 通常它包含html格式或java腳本或css,通常不會提供相關信息。 – 2011-03-29 14:00:26

回答

3

Reading Directly from a URL作爲第一個例子,因爲它已經是一段優雅的代碼,可以滿足您的需求。例如...

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

public class DataURL { 
    public static void main(String[] args) throws Exception { 
     URL yahoo = new URL("http://www.yahoo.com/"); 
     BufferedReader in = new BufferedReader(
       new InputStreamReader(
       yahoo.openStream())); 

     String inputLine; 

     int i=5; /* number lines */ 
     List<String> lines = new ArrayList<String>(); 
     while (i>0 && (inputLine = in.readLine()) != null) { 
      lines.add(inputLine); 
      i--; 
     } 
     in.close(); 

     for (i=lines.size()-1; i >= 0; i--) { 
      System.out.println("Line " + i + ": " + lines.get(i)); 
     } 
    } 
} 

該代碼只是讀取前五行,然後以相反的順序輸出它們。

+0

美麗。謝謝。和!= null只是確保仍然有線要讀取? – LuxuryMode 2011-03-29 14:02:23

+0

是的,正好......只有少於5行的URL不會因'!= null'而失敗 – 2011-03-29 14:04:26

+0

我對你的代碼中URL的實際行存儲在String inputLine中有點困惑。它發生在while測試的(inputLine = in.readLine())部分中嗎?我認爲while循環只是計算布爾值......?意思是,我不認爲你實際上可以執行代碼從URL添加一行到我們的字符串... – LuxuryMode 2011-03-29 14:32:59

1

讀入數組並調用其上的反向函數或遞減循環。

相關問題