public List<Device> getDeviceResults(String appkey) throws IOException {

    String uri = this.resultUri;

    List<Device> list = new ArrayList<Device>();

    FileInputStream fstream = null;
    DataInputStream in = null;
    BufferedReader br = null;
    try {

      fstream = new FileInputStream(uri);
      in = new DataInputStream(fstream);
      br = new BufferedReader(new InputStreamReader(in));

      String line;
      while ((line = br.readLine()) != null) {
        line = line.trim();
        if (line.isEmpty()) continue;

        try {
          Device vo = DeviceResultParser.parse(line);
          if (vo != null && vo.getAppkey().equals(appkey)) {

            vo.setYear(this.year);
            vo.setMonth(this.month);
            vo.setDay(this.day);
            vo.setHour(this.hour);
            vo.setWeek(this.getWeek());
            vo.setDate(this.date);
            vo.setDatehour(this.datehour);
            vo.setDayofweek(this.dayofweek);
            vo.setFromdate(this.fromdate);
            vo.setTodate(this.todate);

            list.add(vo);
          }
        } catch (ParseException ignore) {
          continue;
        }
      }
    } catch (FileNotFoundException ignore) {;
    } catch (IOException ioe) {
      throw ioe;
    } finally {
      if (br != null) br.close();
      if (in != null) in.close();
      if (fstream != null) fstream.close();
    }

    return list;
  }