Manipular arquivo em diferentes SO

2 respostas
Arikado

Tenho um programa que grava um arquivo para ler posteriormente. Nesse arquivo eu preciso gravar o conteúdo separado por linhas. Sendo assim, o arquivo sempre terá mais de uma linha. No meu código eu utilizo o System.getPropertie(“os.name”) para pegar o SO da máquina e depois faço uma comparação. Se o SO for Windows então o programa grava o arquivo com as quebras de linha utilizando “\r\n”. Senão, ele grava o arquivo utilizando “\n” para as quebras de linha. Eu sei que para sistemas baseado em Unix o \n funciona, para Windows tem que ser \r\n. E para outros SO, como o Mac OS por exemplo? Será que o \n funciona?

Agradeço a ajuda!

2 Respostas

T

Em vez de usar essa montanha de IFs, use:

String separador = System.getProperty (“line.separator”);

Que é “\n” em Unix, Linux e MacOS X, “\r\n” em Windows, e “\r” em MacOS 9 ou anterior. (Não sei como é em z/OS, mas isso já é demais :stuck_out_tongue: )

Ou então use o método “println” ou “printf (”%n"), que automaticamente usam o separador adequado.

Arikado

Obrigado! Isso vai me ajudar muito.

Criado 27 de junho de 2007
Ultima resposta 27 de jun. de 2007
Respostas 2
Participantes 2