почему другая часть не печатается в следующей строке? - PullRequest
1 голос
/ 12 августа 2011

Из следующего кода:

import java.io.*;

class fileTester {
  public static void main( String args[]) throws IOException {
    String string = "Suhail" + "\n" + "gupta";
    FileOutputStream fos = new FileOutputStream( new File("break.txt"));
    byte[] data = string.getBytes();
    fos.write( data );
    fos.close();
  }
}

Я ожидал, что результат будет:

Suhail

Гупта

в файле, созданном (то есть обе строки в новой строке) , но вывод находится в одной строке. Suhail gupta

Почему так, когда я использовал символ \n между двумя строками?

Ответы [ 5 ]

3 голосов
/ 12 августа 2011

Вы не должны жестко кодировать символ новой строки при записи в файл.Вместо этого используйте специфическую для ОС строку новой строки:

String newline = System.getProperty("line.separator");

Кроме того, вместо использования FileOutputStream для записи необработанных байтов в текстовый файл, почему бы не обернуть его в объект PrintStream, чтобы можно было просто использовать println (...) сделать твои новые строки для тебя?

1 голос
/ 12 августа 2011

Полагаю, вы используете блокнот для просмотра файла.

Символ конца строки зависит от системы к системе.Более продвинутый текстовый редактор (vg Notepad ++) покажет его правильно, потому что он пытается найти систему, для которой был подготовлен этот файл.

Обычно вместо всегда "\ n", используйте

 java.lang.System.getProperties().get("line.separator")
0 голосов
/ 12 августа 2011

когда вам нужна новая строка, рекомендуется использовать системную строку новой строки, поместив System.getProperty ("line.separator") там, где вы хотите разрыв строки.

Таким образом, он будет использовать правильную новую строку для платформы, на которой вы создаете файл (windows / mac / linux).

0 голосов
/ 12 августа 2011

Это потому, что для Windows новая строка: \ r \ n. В других ОС \ n будет хорошо

0 голосов
/ 12 августа 2011

Если ваша операционная система Windows, чем вы должны использовать \r\n для новой строки, только \n не будет работать в Windows, вы можете найти более подробную информацию здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...