Двойной перевод строки с BufferedReader на Win XP, но не на другие ОС ... тот же код - PullRequest
2 голосов
/ 19 ноября 2011

У меня есть некоторый код, который выполняет exec Runtime и анализирует результаты. В Linux и Windows7 код отлично работает для анализа системных команд, но в Win XP я получаю пустую строку ("") между каждой строкой, в которой есть содержимое. Есть идеи, что здесь может происходить?

Process output = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(output.getInputStream()));
while ((line = br.readLine()) != null)
{
   //do stuff
}

1 Ответ

1 голос
/ 22 ноября 2011

Существует разница между символом (ами) конца строки для Unix против Windows:

Unix:

\n  (0x0A = LF)

Windows

\r\n  (0x0D = CR + 0x0A = LF)

Это должно быть обработано вашим приложением.

...