2011-03-29 5 views
1

URL의 처음 다섯 줄을 읽은 다음 역순으로 인쇄하는 간단한 프로그램을 작성하여 줄 5 줄이됩니다. 4, 3 호선, 2 호선, 라인 여기에 1URL의 첫 번째 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 형식 또는 자바 스크립트 또는 CSS (대개 관련 정보가 아님)가 포함되어 있습니다. –

답변

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

+0

예, 정확히 .. 5 줄 미만의 URL은'! = null'으로 실패하지 않습니다. –

+0

URL의 실제 줄이 String inputLine에 저장되는 코드에 대해 약간 혼란 스럽습니다. while 테스트의 (inputLine = in.readLine()) 부분에서 발생합니까? while 회 돌이가 부울로 평가된다고 생각했는데 ...? 의미, 나는 실제로 당신이 우리의 문자열에 URL에서 라인을 추가하는 코드를 실행할 수 있다고 생각하지 않았다 ... – LuxuryMode

1

배열을 읽어서 역순으로 함수를 호출하거나 감소 된 루프를 호출하십시오.

관련 문제