Ascii значение следующей строки 10. Поэтому я попытался это ...Новая линия в FileOutputStream
FileOutputStream os = new FileOutputStream(f, true);
os.write(10); // this should get me to next line ?
os.write(b); // b is a byte array...
Ascii значение следующей строки 10. Поэтому я попытался это ...Новая линия в FileOutputStream
FileOutputStream os = new FileOutputStream(f, true);
os.write(10); // this should get me to next line ?
os.write(b); // b is a byte array...
Вы должны позаботиться управления сепаратором кроссплатформенная линии, это может быть получен разными способами:
System.getProperty("line.separator")
System.lineSeparator()
(только Java7)String.format("%n")
Тогда вы должны позаботиться о использовании DataOutputStream
обернутую вокруг FileOutputStream
, это потому, что вы будете иметь возможность выбрать множество более эффективных методов, как
writeChars(String str)
writeBytes(String str)
writeUTF(String str)
, так что вы будете использовать наиболее подходящий для вашей ситуации.
Умение также, что запись байтового массива непосредственно в потоке создает двоичные данные, что несколько противоположно использованию строк новой строки (которые вместо этого являются текстом).
На окнах вы должны использовать 13 и 10 в качестве разделителя строки (CR, LF) - то есть:
os.write(13);
os.write(10);
Таким образом, если вы хотите, чтобы ваше приложение, чтобы быть независимым от платформы, вы должны использовать все, что находится в свойство линии.сепаратора, как предлагает Джек.
В чем проблема? – Pablo
его не работает, следующий lne не существует, вместо этого он добавляется от последнего символа в файле – Nil