Есть ли верхний предел размера файла .txt? - PullRequest
18 голосов
/ 24 декабря 2008

В качестве рождественского подарка я написал небольшую программу на Java для вычисления простых чисел. Мое намерение состояло в том, чтобы оставить его на всю ночь, вычислить следующее простое число и записать его в файл .txt. Утром я убивал бы программу и передавал файл .txt своему другу на Рождество.

Есть ли что-то, о чем я должен беспокоиться? Имейте в виду, что это истинный новичок Зигги, с которым вы говорите, а не какой-нибудь умный парень, проверяющий ошибки ASM.

РЕДАКТИРОВАТЬ Более конкретно, так как я буду выходить из этой программы на все простые считания времени, есть ли вероятность того, что я столкнусь с некоторой ошибкой, связанной с памятью? Как стеки, разбивающие груды, или собаки и кошки, спящие вместе?

РЕДАКТИРОВАТЬ еще конкретнее, есть ли строка кода, которую я мог бы вставить, чтобы остановить печать строк, когда размер файла составляет 4 ГБ? Просто чтобы быть в безопасности?

РЕДАКТИРОВАТЬ: success: оставив его на всю ночь, я получил не более 13 КБ простых чисел. Максимальное значение, которое я получил, было 22947217, что составляет десятки тысяч простых чисел. Успех!

Ответы [ 11 ]

17 голосов
/ 24 декабря 2008

Я бы рекомендовал отправлять SMS-сообщения для каждого вычисленного вами простого числа. Твой друг хотел бы этого гораздо лучше, чем куча бумаги. Плюс он может обновляться гораздо чаще.

8 голосов
/ 24 декабря 2008

Существует множество ограничений, хотя ни один из них не присущ файлам .txt:

  • Блокнот Windows 9x не открывает файл размером более 64 КБ.
  • Блокнот Windows NT / 2k / etc не имеет ограничений, но имеет тенденцию задыхаться и блокировать файлы размером в несколько мегабайт. Вы также должны помнить, что большинство текстовых редакторов глупы, и пытаться прочитать весь файл в ОЗУ.
  • Количество программного обеспечения ограничено 2 ГБ или 4 ГБ файлами, в зависимости от того, используют ли они подписанные или неподписанные целые, поскольку в этом уже виновен FAT32.
6 голосов
/ 24 декабря 2008

Скорее всего, вы используете медленный алгоритм. По мере того, как простые числа будут увеличиваться, вашей программе потребуется больше и больше времени для вычисления одного простого числа. Если вы позволите ему работать в течение ночи, текстовый файл не будет очень большим по утрам. Я был бы впечатлен, если бы это было за пару мег.

2 голосов
/ 24 декабря 2008

Вы могли бы рассмотреть отслеживание количества байтов, которые вы записываете в каждый файл, и переключение на новый после некоторого количества байтов. Вы также можете предоставить просмотрщик ваших файлов, чтобы ваш друг мог легче увидеть его подарок. :)

2 голосов
/ 24 декабря 2008

Технически, нет никаких ограничений, кроме тех, которые накладывает на вас файловая система. Тем не менее, Блокнот действительно неуместен в открытии непристойно больших файлов.

1 голос
/ 24 декабря 2008

Зигги -

Мне нравится это: "не какой-нибудь умный парень, проверяющий ошибки ASM". Вы описываете всех нас!

Имейте много места на диске и пишите! Как упоминалось ранее, убедитесь, что редактор, используемый для открытия вашего файла, может открывать очень большие файлы.

Счастливых праздников, настоящий новичок Зигги.

1 голос
/ 24 декабря 2008

Если память используется, FAT32 имеет размер файла 4 ГБ.

0 голосов
/ 26 декабря 2008

Почему-то я сомневаюсь, что когда ваша программа будет запущена в одночасье, размер файла будет проблемой, учитывая, что поиск простых чисел займет больше времени, когда числа станут больше. Просто убедитесь, что вы очищаете, или вы можете съесть всю свою оперативную память.

Чтобы ответить на ваш вопрос: Теоретически, файловая система ограничивает размер файла. Однако во время загрузки больших файлов (> 100 МБ) происходит сбой многих текстовых редакторов (vim этого не делает), поскольку они пытаются разместить его в одном буфере.

Подводя итог, рассмотрите возможность разбиения ваших файлов на куски, которые может обработать самая слабая ссылка (текстовые редакторы).

0 голосов
/ 24 декабря 2008

Как насчет создания одного файла для каждого простого числа, а затем использовать имя файла для отображения числа?

0 голосов
/ 24 декабря 2008

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

...