Java: чтение завершающей новой строки из текстового файла - PullRequest
5 голосов
/ 16 февраля 2009

Как вы можете получить содержимое текстового файла, сохранив, есть ли у него символ новой строки в конце файла? Используя эту технику, невозможно определить, заканчивается ли файл новой строкой:

BufferedReader reader = new BufferedReader(new FileReader(fromFile));
StringBuilder contents = new StringBuilder();

String line = null;
while ((line=reader.readLine()) != null) {
  contents.append(line);
  contents.append("\n");
}

Ответы [ 2 ]

7 голосов
/ 16 февраля 2009

Не используйте readLine (); передавайте содержимое по одному символу за раз, используя метод read (). Если вы используете его в BufferedReader, он будет иметь такую ​​же производительность, хотя, в отличие от вашего кода выше, он не "нормализует" разрывы строк CR / LF в стиле Windows.

0 голосов
/ 16 февраля 2009

Вы можете прочитать все содержимое файла, используя один из методов, перечисленных здесь

Мой любимый вот этот:

public static long copyLarge(InputStream input, OutputStream output)
       throws IOException {
   byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
   long count = 0;
   int n = 0;
   while ((n = input.read(buffer))>=0) {
       output.write(buffer, 0, n);
       count += n;
   }
   return count;

}

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