2012-03-16 4 views
2

У меня есть цикл while, который добавляет данные в цикл while и закрывается каждый раз перед концом цикла. Возможно ли синхронизировать этот файл с сервером после закрытия файла и до того, как закончить цикл?Синхронизация файла с сервером в цикле while

//--- Pseudocode 
while(1){ 
    writer.append(data1); 
    writer.append(,); 
    writer.append(data2); 
    writer.append(,); 
    writer.flush(), 
    // --I need to run a command here that lets me sync the file to the server 
} 

Im пытается использовать Runtime.exe() после флеша. Будет ли это хорошей идеей? Это приведет к задержке?

+2

Уверенный, что это. Попробуйте, и если у вас возникнут проблемы, вернитесь и покажите нам, что вы пробовали, а что - нет. Тем не менее, он не будет работать очень хорошо, потому что серверная связь идет медленно, но это совсем другая история. – cdeszaq

+0

Не могли бы вы объяснить свою проблему лучше, пожалуйста? Вам нужно запустить команду операционной системы, используя 'Runtime.exec'? –

+0

с любыми предложениями для начала? – DesperateLearner

ответ

1

Если я правильно понял ваш вопрос, вы должны просто использовать ProcessBuilder.

ProcessBuilder pb = new ProcessBuilder("scp", yourfileName, "[email protected]:/remote/folder"); 
Process p = pb.start(); 

Но я не тестировал этот код.

Вы можете столкнуться с проблемами, такими как:

  • Если вы используете пароль (а не открытый ключ) для аутентификации, я не знаю, если scp принимает пароль из стандартного ввода.
+0

Спасибо Данило. Будет проверять его. Как насчет аутентификации сервера? – DesperateLearner

+0

Я просто редактировал ответ. У вас возникли проблемы с аутентификацией пароля? Используете ли вы аутентификацию с открытым ключом? –

+0

Ошибка: не удается запустить программу «scp»: CreateProcess error = 2, система не может найти указанный файл Это была ошибка, которую я получил для ProcessBuilder pb = new ProcessBUilder («scp», «C:/wamp/www /test.csv","[email protected] "); – DesperateLearner

Смежные вопросы