Чтение первых 5 строк URL, затем печать в обратном порядке - PullRequest
1 голос
/ 29 марта 2011

Я хочу написать простую программу, которая читает первые пять строк URL-адреса, а затем распечатывает их в обратном порядке, поэтому это будет строка 5, строка 4, строка 3, строка 2, строка 1.

Вот что у меня так далеко:

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

Какой самый элегантный способ сделать то, что я пытаюсь сделать?

Ответы [ 2 ]

3 голосов
/ 29 марта 2011

Взять Чтение непосредственно с 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));
        }   
    }   
}

Этот код просто читает первые пять строк, а затем выводит их в обратном порядке.

1 голос
/ 29 марта 2011

Чтение в массив и вызов обратной функции в нем или в уменьшенном цикле.

...