есть ли что-то как альтернативные потоки данных в какой-либо файловой системе Linux?

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

19
задан hippietrail 8 June 2016 в 09:15
поделиться

6 ответов

Существуют файловые системы и в Windows и в Linux (и другие Ose), что поддержка расширила атрибуты (EA). Поддержка Windows была добавлена для ОС/2, разделяют, и не имеет никакого зарегистрированного интерфейса, за исключением hacky метода через резервный API (это - то, что Cygwin делает). EA разработаны для хранения маленьких значений только. В Windows каждый EA имеет имя ASCII (тогда как почти все другие имена являются Unicode), и объединенный размер всех EA на файле не может быть больше, чем 64k. EA не являются файлами: Вы не можете открыть дескриптор файла для EA и считать его как нормальный файл.

Альтернативные потоки данных являются отдельной функцией, обеспеченной NTFS, который позволяет Вам обеспечивать альтернативные субфайлы в файле. Каждый файл имеет поток данных без имени по умолчанию, который автоматически открыт, если Вы не указываете альтернативный. Можно открыть дескриптор для ADS и читать (даже выполняются), это как нормальный файл, с синглом (Unicode) имя файла. ADS может быть столь же большим как любой дисковый файл.

нет никакого точного аналога к ТЕСЛАМ на Linux, о котором я знаю, но Вы можете использовать EA на порте Linux вместо этого, если значения данных являются небольшими.

13
ответ дан 30 November 2019 в 03:48
поделиться

Проблема с ADS состоит в том, что Windows "потеряет" те, которые ADS передает потоком второе, которое он перемещает в любую файловую систему не-NTFS. Это не считает те потоки важными, поэтому часто они не имеются в наличии. Вы найдете, что они не доступны или исчезают, когда по сетевому ресурсу при записи к CD поставил Карту памяти, и т.д.

, длинное и за исключением него, если у Вас нет очень узкого фокуса для Вашего приложения (всегда на NTFS), я избежал бы потоков ADS в целом.

14
ответ дан 30 November 2019 в 03:48
поделиться

Расширенные атрибуты поддерживаются некоторые файловые системы, особенно XFS, и (я думаю), JFS; но ограничены в размере (64k в XFS). Reiser4 поддерживает произвольные размерные ветвления; но это не поддерживается никаким дистрибутивом, о котором я знаю. Другая опция является ZFS, снова не очень применимым.

В конце, вероятно, более мудро просто использовать каталог.

7
ответ дан 30 November 2019 в 03:48
поделиться

Большинство файловых систем Linux имеет extended attributes. Я не знаком с потоками NTFS, таким образом, я не могу сравнить два. Большинство файловых систем должно быть смонтировано с флагами для включения расширенных атрибутов, таким образом, это не может работать в общем ни на чью систему. Они обычно сокращаются как xattr или xattrs.

0
ответ дан 30 November 2019 в 03:48
поделиться

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

0
ответ дан 30 November 2019 в 03:48
поделиться

Наиболее часто используемые файловые системы Linux не поддерживают это. Вместо этого Вы могли использовать несколько файлов, и подходящая схема именования (просто добавляют потоковый индекс к каждому имени файла, возможно), или архив, содержащий несколько файлов; Вы найдете, что такой подход лучше другими способами так или иначе - например, что происходит в Windows, если кто-то хочет создать резервную копию Windows файлов к носителю с файловой системой не-NTFS?

0
ответ дан 30 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

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