我正在尝试从特定网站读取数据。值是制表符分隔值。目前,我正在尝试打印最后一列(温度)的值,但我也有兴趣从第一列读取值。我似乎无法让我的代码工作并实际打印值。有人可以帮忙吗?此外,任何有关如何同时获得第一列和最后一列的帮助都会有所帮助。 到目前为止,这是我的代码:
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
答案 0 :(得分:0)
1)您没有将整行读入"数据"变量。您应该使用scan.nextLine()方法读取整行。
2)使用分隔符作为选项卡而不是逗号,因为它是一个制表符分隔文件。
3)由于数据只有4个coloumns,访问nums [5]会导致ArrayIndexOutOfBoundsException