Различие между файлами, записанными в двоичном файле и текстовом режиме

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

54
задан Cœur 12 June 2018 в 00:39
поделиться

4 ответа

Я полагаю, что большинство платформ проигнорирует "t" опцию или опцию "текстового режима" при контакте с потоками. На окнах, однако, дело обстоит не так. Если Вы смотрите на описание fopen (), функционируют в: MSDN, Вы будете видеть, что определение "t" опции будет иметь следующий эффект:

  • переводы строки ('\n') будут переведены в '\r\n" последовательности на выводе
  • , возврат каретки / последовательности перевода строки будет переведен в переводы строки на входе.
  • , Если файл открыт в, добавляют режим, конец файла будет исследован на символ ctrl-z (символ 26) и что символ удалил, если это возможно. Это также интерпретирует присутствие того символа, как являющегося концом файла. Это - неудачный пережиток со дней CPM (что-то о грехах родителей, посещаемых на их детей до третьего или четвертого поколения). Вопреки ранее установленному мнению не будет добавлен символ ctrl-z.
48
ответ дан Jon Trauntvein 7 November 2019 в 08:02
поделиться

В текстовом режиме новая строка "\n" может быть преобразована в возврат каретки + новая строка "\r\n"

Обычно, Вы захотите открыться в режиме двоичного счета. Попытка считать любые двоичные данные в текстовом режиме не будет работать, это будет повреждено. Можно прочитать текст хорошо в режиме двоичного счета, хотя - это просто не сделает автоматических переводов "\n" к "\r\n".

См. fopen

28
ответ дан MrZebra 7 November 2019 в 08:02
поделиться

Кроме того, когда Вы fopen файл с "rt" вход завершаетесь на символе Crtl-Z.

5
ответ дан SmacL 7 November 2019 в 08:02
поделиться

У нас была интересная проблема с вводными файлами в текстовом режиме, где файлы имели смесь конечных символов строки:

1\n\r
2\n\r
3\n
4\n\r
5\n\r

Наше требование - то, что мы можем сохранить нашу текущую позицию в файле (мы использовали fgetpos), закройте файл и затем позже вновь открыть файл и искать на то положение (мы использовали fsetpos).

Однако, где файл имеет смеси окончаний строки тогда, этому процессу не удалось искать на фактическое то же положение. В нашем случае (наш инструмент анализирует C++), мы перечитывали части файла, который мы уже видели.

Идут с двоичным файлом - тогда можно управлять точно, что считано и записано из файла.

3
ответ дан Richard Corden 7 November 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: