2010-12-06 25 views
0


Je suis en train d'écrire une ligne de fichiers en ligne à l'aide FileUtils.writeLines apache()
Lorsque je tente d'ouvrir le fichier (notepad ++, editplus), il est sans saut de ligne.
(J'envoie null à l'encodage) merci.ligne java casse dans le fichier

FileUtils.writeLines(new File(INDICES_AND_WEIGHTS_FILENAME), indicesAndWeightsParams.indicesParams,";"); 

où indicesParams est une liste
Liste publique indicesParams;

+0

comment écrire des sauts de ligne? –

+5

Nous ne sommes pas psychiques; montre le code. Nous ne pouvons pas vous dire ce qui ne va pas si nous ne pouvons pas le voir. –

+0

Cela fonctionne si vous appelez la méthode avec les arguments corrects. Montrez-nous votre code réel s'il vous plaît. –

Répondre

1

Utilisez-vous du code similaire à celui-ci?

List<String> ls = new ArrayList<String>(); 
ls.add("aaa"); 
ls.add("bbbbb"); 

FileUtils.writeLines(new File("newfile.txt"), "UTF-8", ls); // same effect as with "null" as encoding 

Une fois ce code, newFile.txt n'avoir des sauts de ligne.

L'utilisation od -a newfile.txt génère (sous Windows):

0000000 a a a cr nl b b b b b cr nl 
0000014 

qui montre que les nouvelles lignes n'existent vraiment.

1

Assurez-vous quelle version de writeLines() vous appelez. Il existe une version qui vous permet de spécifier les fins de ligne. Si vous passez une chaîne vide là-bas, vous n'aurez pas:

public static void writeLines(File file, Collection<String> lines, String lineEnding) throws IOException { 

L'encodage est toujours entre le fichier et la collection, le séparateur de ligne est toujours le dernier paramètre.

+0

J'utilise cette version – Jeb

+0

Eh bien, vous définissez le séparateur de ligne à ";" -- Qu'attendez-vous? –

+0

Je devrais le mettre à \ r \ n? – Jeb

1

Ajoutez simplement "\ r \ n" où vous voulez les sauts.

+0

mais je le veux automatiquement. C'est pourquoi il enregistre une collection – Jeb

+0

et pas une chaîne. – Jeb