在android studio中使用java,我正在尝试读取.txt文件并进行解析以获取一些数据。
文件:https://www.ndbc.noaa.gov/data/latest_obs/latest_obs.txt
我正在使用他的以下代码来解析数据:
String[] splited = str.trim().replaceAll(" +", " ").split(" ");
String sDate1= splited[3] + "/" + splited[4] + "/" + splited[5]
+ "/" + splited[6] + "/" + splited[7];
try{
java.util.Date date1 = new
java.text.SimpleDateFormat("yyyy/MM/dd/hh/mm").parse(sDate1);
System.out.println(date1);
}
catch(Exception e){
System.out.println(e.getMessage());
}
String windSpeed = splited[9];
String waveHeight = splited[11];
String airTemperature = splited[17];
String waterTemperature = splited[18];
System.out.println(windSpeed);
System.out.println(waveHeight);
System.out.println(airTemperature);
System.out.println(waterTemperature);
if(windSpeed.toLowerCase().equals("mm")){
// write your code here
}
if(waveHeight.toLowerCase().equals("mm")){
// write your code here
}
if(airTemperature.toLowerCase().equals("mm")){
// write your code here
}
if(waterTemperature.toLowerCase().equals("mm")){
// write your code here
}
“ //在此处编写代码”将仅返回“数据不适用”,因为mm表示缺少数据。
我的问题是我不确定如何从要读取的URL中打开文件。我想每小时打开一个文件,并解析下面的数据,以便我可以将其分配给我的应用程序中的浮标。
答案 0 :(得分:1)
您的数据文件来自Internet,因此您需要在分析文件之前先下载文件。虽然可以同时下载和解析文件,但首先让我们保持简单。
要下载文件,有很多方法可以执行此操作,但是您可以从OkHttp或UrlConnection
(see this SO answer for more info)开始。如果您需要替代方法,请签出Retrofit。 Retrofit是OkHTTP的包装,使有经验的开发人员可以更轻松地使用它,但是,如果您刚刚起步,我建议暂时坚持使用OkHttp,直到您了解发生了什么。
一旦文件下载或存储在内存中,您可能希望使用BufferedReader
(由rileyjsumner建议)使用您发布的代码一次读取和解析一行。
由于您要特别询问有关Android的信息,因此需要牢记以下几点:
答案 1 :(得分:0)
您可能要使用mem
-javadoc
BufferedReader
然后可以浏览文件的上下文。
BufferedReader reader = new BufferedReader(new FileReader("url.txt"));
This answer也有关于BufferedReader的更多信息