2015-05-29 3 views
0

Я хочу использовать мой класс java на huds hadoop, теперь я должен переписать свои функции. проблема в том, что если я использую InputStreamReader, мое приложение считывает неправильные значения.java hadoop: FileReader VS InputStreamReader

здесь мой код (так это работа, я хочу использовать раскомментируйте часть кода):

public static GeoTimeDataCenter[] readCentersArrayFromFile(int iteration) { 
    Properties pro = new Properties(); 
    try { 
     pro.load(GeoTimeDataHelper.class.getResourceAsStream("/config.properties")); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    int k = Integer.parseInt(pro.getProperty("k")); 
    GeoTimeDataCenter[] Centers = new GeoTimeDataCenter[k]; 
    BufferedReader br; 
    try { 
     //Path pt=new Path(pro.getProperty("seed.file")+(iteration-1)); 
     //FileSystem fs = FileSystem.get(new Configuration()); 
     //br=new BufferedReader(new InputStreamReader(fs.open(pt))); 
     br = new BufferedReader(new FileReader(pro.getProperty("seed.file")+(iteration-1))); 
     for(int i =0; i<Centers.length; i++){ 
      String[] temp = null; 
      try{ 
       temp = br.readLine().toString().split("\t"); 
       Centers[i] = new GeoTimeDataCenter(Integer.parseInt(temp[0]),new LatLong(Double.parseDouble(temp[1]),Double.parseDouble(temp[2])),Long.parseLong(temp[3])); 
      } 
      catch(Exception e) { 
       temp = Seeding.randomSingleSeed().split("\t"); 
       Centers[i] = new GeoTimeDataCenter(i,new LatLong(Double.parseDouble(temp[0]),Double.parseDouble(temp[1])),DateToLong(temp[2])); 
      } 
     } 
     br.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return Centers; 
} 

может быть кто-то знает эту проблему?

С наилучшими пожеланиями

+0

Какую ценность вы ожидаете? Какую ценность вы получаете? – Virmundi

+0

он должен прочитать файл семени, например, k = 4: 4 строки с двумя двойными значениями и одно длинное значение, разделенное табулятором. –

ответ

1

У меня проблема. У меня есть исключение контрольной суммы. теперь я удаляю все .crc-файлы из моего входного файла. таким образом, я не получаю исключение контрольной суммы, и буферизованный читатель работает нормально (часть без комментирования, наверху).