java - 读取 URL 的前 5 行,然后以相反的顺序打印

标签 java java-io

我想写一个简单的程序,读取 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);

做我想做的事情最优雅的方法是什么?

最佳答案

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

这段代码只是简单地读取前五行,然后倒序输出。

关于java - 读取 URL 的前 5 行,然后以相反的顺序打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5473275/

相关文章:

java - 从 DataInputStream 中读取一个 int[]

java - BlueJ 和键盘输入

Java Swing 透明度绘制问题

java - Apache 常见压缩在包含到 Android 项目时给出奇怪的错误

java - 尝试将 uml 组合翻译成代码 [uml]

android - 如何从文件中检索指定的数据?

java - 从 URI 的 PATH 读取文件

java - 用于从文件中读取矩阵的单行 Java 扫描器

java - 遍历对象层次结构

java - 具有正确路径的 netbeans 空指针异常