如何从网址导入多列数据?

时间:2015-03-25 02:06:28

标签: java url

我正在尝试从特定网站读取数据。值是制表符分隔值。目前,我正在尝试打印最后一列(温度)的值,但我也有兴趣从第一列读取值。我似乎无法让我的代码工作并实际打印值。有人可以帮忙吗?此外,任何有关如何同时获得第一列和最后一列的帮助都会有所帮助。 到目前为止,这是我的代码:

import java.util.*;
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class InputOutput
{
   public static void readTemp()
   {

        try
        {
            URL temperature = new URL("http://academic.udayton.edu/kissock/http/Weather/gsod95-current/MNMINPLS.txt");
            Scanner scan = new Scanner(new    InputStreamReader(temperature.openStream()));    //scanner to read url
            while(scan.hasNext())
            {
                String data = scan.next();                              //returns whole line
                String[] nums = data.split(",");                        //split top array
                long tempReading = Integer.parseInt(nums[5]);           //read 6th column
                System.out.println(tempReading);                        //print data in 6th column
            }//end while statement
            scan.close();
        }
        catch(MalformedURLException e)
        {
            System.out.println("Malformed URL: " + e.getMessage());
        }
        catch(IOException e)
        {
            System.out.println("I/O Error: " + e.getMessage());
        }//end try/catch

    }//end method readTemp
}//end class InputOutput 

1 个答案:

答案 0 :(得分:0)

1)您没有将整行读入"数据"变量。您应该使用scan.nextLine()方法读取整行。

2)使用分隔符作为选项卡而不是逗号,因为它是一个制表符分隔文件。

3)由于数据只有4个coloumns,访问nums [5]会导致ArrayIndexOutOfBoundsException