Невозможно распаковать файл на Mac, который был протравлен в Windows - PullRequest
2 голосов
/ 17 ноября 2009

У меня есть простой класс, который я добавляю в файл. В OS X это работает нормально, а в Windows - нормально.

Однако, хотя в Windows я могу нормально загружать / распаковывать объект - когда Windows затем выбирает этот файл и сохраняет его на диск, он становится нечитаемым в OS X (хотя в Windows он по-прежнему ведет себя как обычно).

Ошибка, которую я получаю от OS X, заключается в том, что она не может импортировать требуемый класс.

Я в замешательстве, так как все работает нормально, пока я ничего не мариную в окнах! (Даже в Windows это все еще работает нормально)

Я слышал, что это могут быть окончания строк, другие мои мысли, возможно, связаны с тем, какой тип кодирования используется в разных операционных системах? Но я действительно не знаю, что пытаться полностью диагностировать и / или решить эту проблему, поэтому любая помощь будет принята с благодарностью!

Ответы [ 2 ]

5 голосов
/ 17 ноября 2009

Выберите новую версию протокола и откройте файлы в двоичном режиме во всех случаях Это должно решить проблему.

3 голосов
/ 17 ноября 2009

Это будет конец строки - если вы используете открытый файл ASCII для консервирования в режиме ascii 'r' или 'w' - если вы используете бинарный файл, открытый в двоичном режиме 'rb' 'wb'. Из строки документации:

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

...