2012-04-04 11 views
5

Sto lavorando con Java in un ambiente multipiattaforma (Windows + Linux). Qualunque sia il tipo di file di testo che produciamo, tuttavia, è necessario utilizzare LF come sequenza EOL.Imposta la riga predefinita che termina in Java

Esiste un modo per forzare Java a utilizzare questa sequenza EOL indipendentemente dalla piattaforma su cui sto eseguendo un programma? Mi piacerebbe non dover cambiare l'intero programma, cioè tutte le chiamate a System.out.println e simili dovrebbero essere mantenute così come sono, solo il * ln alla fine della funzione dovrebbe sempre generare un "0x0A" e mai " 0x0D 0x0A ".

mi veniva in mente due modi diversi di fare questo, ma non so se uno dei due è possibile:

  1. sostituire la sequenza predefinita EOL dipende dalla piattaforma
  2. rendere Java credo di essere eseguire Linux anche quando eseguo il mio programma sulla riga di comando DOS

È possibile? O qualcos'altro forse?

+1

http://stackoverflow.com/questions/6128174/how-do-i-force-windows-line-endings-in-java-app – kevingallagher

risposta

2

Si può provare a impostare la proprietà di sistema corrispondente come System.setProperty("line.separator", "something you need"); (Può anche essere raggiunto throug parametri della riga di comando per JVM)

O, forse, è possibile utilizzare print insetad di caratteri di interruzione di riga println e stampare ("\r", "\ n" o la loro combinazione) dove ne hai bisogno.

1

Dai un'occhiata a this e this. Se li metti insieme, scoprirai che System.setProperty("line.separator", "\n"); potrebbe risolvere il tuo problema.

Tuttavia, non l'ho provato, è per questo che ho aggiunto i collegamenti, quindi puoi verificare tu stesso.

+2

Questo non aiuta. Si modifica la proprietà ma non il comportamento. Semplicemente non reagire al cambiamento di proprietà. Verificato sperimentalmente Lo stesso con altre proprietà di sistema, come java.class.path. La riga di comando è la tua unica opzione (o qualche modifica del tempo di esecuzione del codice). – Espinosa

Problemi correlati