2016-03-19 5 views
0

Привет, я застрял в нижеописанной проблеме, где я получил исключение контрольного стиля в if(files !=null). Так что он также не компилируется.Ожидание EOF найдено, если

Вот мой код:

private void printBeforeData(final int svrID, final PrintStream ps, final File dir) throws RemoteException { 

    // 「p[サーバID].csv」は、メモリ上のデータを使用して生成するので、除く 
    final String regexField = ELECTRIC_FILE + svrID + "\\.csv\\.[0-9]+$"; 
    final File[] files = dir.listFiles((final File dirToFilter, final String filename) -> 
     filename.matches(regexField)); 
    if (files != null) { 
     // 昇順でソート 
     final List<File> listFiles1 = Arrays.asList(files); 
     Collections.sort(listFiles1, (f1, f2) 
       -> ElectricPowerManager.getSuffixNo(f1) - ElectricPowerManager.getSuffixNo(f2)); 
     final StringBuilder strings = new StringBuilder(); 
     for (final File file: listFiles1) { 
      try (BufferedReader br = Files.newBufferedReader(file.toPath())) { 
       int cnt = 0; 
       for (String line = br.readLine(); line != null; line = br.readLine()) { 
        strings.append(line); 
        strings.append(LINE_BREAK); 
        cnt++; 
        if (cnt == CASH_ROW) { 
         // 一定数溜め込んでからファイル出力 
         ps.print(strings.toString()); 
         strings.delete(0, strings.length()); 
         cnt = 0; 
        } 
       } 
       if (cnt > 0) { 
        ps.print(strings.toString()); 
        strings.delete(0, strings.length()); 
       } 
      } catch (final IOException e) { 
       core.putSystemLog(this.getClass().getSimpleName() + "#" + METHOD_PRINT_BEFORE_DATA + 
         " Failed print Electric Data. serverID:" + svrID, e); 
      } 
     } 
    } 
} 
+0

Вы вставили весь свой код? В конце отсутствует закрывающая скобка (закрывающая скобка метода printBeforeData()). –

+0

Привет, Мартин. Я пропустил скобу при вставке кода из IDE. – user3223518

+0

Вам нужно поставить точный компилятор или выход программы в свой вопрос, поскольку на данный момент неясно, в чем проблема. –

ответ

0

final File[] files = dir.listFiles((final File dirToFilter, final String filename) - filename.matcheS(regexField));

1) Никто (ни компилятор, ни вы) понять, что это значит вычитаем булево из списка параметров (- filename.matcheS(regexField))). Подумайте еще раз, что вы пытаетесь сделать.

2) Вы определяете переменные() в середине списка параметров, вы должны использовать здесь выражения (например, уже уже определенные и со значением, заданным в другом месте или константами). Бьюсь об заклад, вы вводите в заблуждение вызов метода с определением (или вы просто забыли заполнить код, который генерирует IDE).