Язык SQL

Мобильность потоков данных


Классы потоков данных создают значения, которые можно переносить в любую среду выполнения Java. Если использовать для выполнения этих тестов ввода/вывода компьютер, на котором установлена система Microsoft Windows, можно заметить некоторые отличия между файлами, создаваемыми Windows и отображаемыми с помошью команды debug, и файлами системы Unix.

Первое отличие между Windows и Unix проявляется в потоках, создаваемых с использованием символов конца строки. В системе Unix символ конца строки — это символ новой строки (0×0а или п). В системе Windows конец строки представляется двумя символами: возврата каретки (OxOd или г) и новой строки. Для использования зависящих от платформы разделителей строк предназначены методы println и readLine. Следовательно, выполнение Java-nporpaMMbi на платформе Windows, создающей поток, представленный 11.2.1, приведет к созданию следующих строк с двухсимвольными разделителями (разделители строк выделены).

0000000 416е 696d 616c 2048 6f 7 5 7365 CdOa 3138

 А п i m a 1 H о u s e r n 1 8

0000010 390d ОабЗ 6f 6d 6564 7 90d 0a 

 9 г n с о m e d у r n 

Файл можно правильно считать только с помощью программы, работающей на совместимой платформе.

Второе отличие между платформами состоит в порядке следования байт в числовых значениях. Компьютеры Intel Pentium и Sun Microsystems представляют целочисленные значения с разным порядком следования байт. Например, двухбайтовое шестнадцатеричное представление числа 189 в Sun выглядит как OxOObd, а в Intel как OxbdOO. Это различие часто называется хвостовым (-endian) различием. Эти два стиля называются с большим хвостом и с маленьким хвостом.

При использовании Java на компьютере с процессором фирмы Intel создаваемые потоки данных будут идентичны тем, что описаны здесь, так как потоки данных являются независимыми от платформ. Методы чтения и записи выполняют преобразование из присущего памяти представления чисел в мобильное представление потока. Поскольку язык Java является продуктом компании Sun Microsystems, неудивительно, что для целых значений используется представление Sun.

Аналогичная ситуация существует для,1 значений с плавающей точкой. Их представление отличается в различных машинах и, как следствие, методы чтения и записи должны производить соответствующие преобразования значений. Однако в большинстве современных машин используется стандарт IEEE для значений с плавающей точкой, что делает менее вероятной необходимость преобразования этих значений. Тем не менее, все-таки могут существовать хвостовые различия в значениях с плавающей точкой в различных компьютерах. Как и другие простые значения Java, значения с плавающей точкой представляются в потоках данных независимым от платформы образом.

Комментарии закрыты