Java ObjectInputStream

Java Objectinputstream



«Информация, записанная через объект ObjectOutputStream, в основном доступна с использованием класса ObjectInputStream. Основной целью класса ObjectInputStream будет реконструкция основных данных и сущностей, которые создаются с использованием класса ObjectOutputStream. Используя SocketStream, ObjectInputStream также можно использовать для передачи объектов между разными хостами. Поэтому мы решили написать полезное руководство для нашей системы Ubuntu 20.04, чтобы отключить объект класса objectinputstream для чтения данных из потока ввода файла. Начнем с открытия консоли».

Пример 01

Начиная с первого примера нашей статьи, мы создали новый java-файл «test.java». После этого мы также создали текстовый файл в той же папке.







Чтобы прочитать объекты входного потока в java-программе, нам нужно импортировать выходной поток. Итак, мы импортировали пакеты «java.io.ObjectInputStream» и «java.io.ObjectOutputStream» в самом начале. Наряду с этим, чтобы вставить данные в файл, нам нужно импортировать «java.io.FileInputStream» и «java.io.FileInputStream». Мы создали класс «Main», содержащий одну функцию main().



Выполнение функции начинается с объявления целочисленной переменной «d». Чтобы избежать внезапного выхода из программы из-за ошибок, мы добавили оператор try-catch из java. Часть «попробовать» начинается с инициализации объекта потока вывода файла «f» через класс FileOutputStream. Мы передали имя файла «new.txt» этому объекту «f». Мы создали поток вывода объекта «o» и передали объект файла «f» классу ObjectOutputStream, чтобы сделать файл потоком вывода.



В самой следующей строке мы вызывали функцию writeInt() выходного потока Java через объект выходного потока «o», чтобы передать ему целочисленную переменную «d», т. е. сохранить ее в файле. В строке 12 мы создали файловый входной поток «fs», используя класс FileInputStream Java, передав ему файл «new.txt», т. е. в нем уже есть данные. Этот объект файлового входного потока «fs» был передан вновь сгенерированному объекту «os» класса ObjectInputStream, чтобы разрешить чтение из файлового потока. Функция println() из пакета «System.out» java была изменена для вызова функции readInt() через объект потока ввода объекта «os» для отображения данных из файла new.txt. После этого мы закрываем поток вывода и поток ввода, используя соответствующие объекты «o» и «os», используя функцию «закрыть» обработки файлов в java. Это необходимый шаг для закрытия потоков, чтобы ни один другой пользователь не мог вводить или выводить данные из файла. В операторе catch() мы использовали функцию getStackTrace(), чтобы получить ошибку и отобразить ее на экране с помощью переменной исключения «e». Эта программа готова к выполнению в оболочке.





Мы только что сохранили наш файл кода Java перед его выполнением и использовали инструкцию ключевого слова java для выполнения файла «test.java». Ничего не возвращает взамен. Кроме того, отображение данных текстового файла «new.txt» в оболочке с помощью инструкции «cat» отображало мусорное значение. Это связано с тем, что в большинстве случаев исполнитель Java не может прочитать целочисленное значение из файла. Но, скорее всего, он отобразит точное целочисленное значение.



Проверив файл new.txt, открыв его вручную, мы увидели, что в файле показан формат значения Unicode.

Если вы не можете отобразить целочисленное значение из файлового потока, вы можете использовать функцию writeObject() в java-программе вместо функции writeInt() для записи значения «d» в файловый поток через объект «o». как показано. Наряду с этим вам нужно отключить функцию «readObject()» вместо функции readInt() для отображения данных из входного потока файла.

Обновление этого кода будет отображать целочисленное значение при выполнении.

Пример 02

Давайте возьмем другое значение программирования на Java, чтобы отбрасывать входной поток объекта для значения строкового типа. Таким образом, мы начали этот пример кода с импорта тех же классов FileInputStream, FileOutputStream, ObjectInputStream и ObjectOutputStream из пакета «io» библиотеки java. Класс Main имеет свою функцию main() для запуска выполнения этого кода. Строковая переменная «d2» инициализируется длинным строковым значением.

Тот же самый оператор try-catch был отброшен, чтобы избежать ошибки и обеспечить плавное выполнение этого кода Java. Объект «f» для потока вывода файла был создан с помощью класса FileOutputStream, принимающего «new.txt» в качестве аргумента. Объект потока вывода файла «f» был передан объекту потока вывода «o», который был создан с использованием класса ObjectOutputStream. Теперь выходной поток «o» вызывает функцию writeObject(), передавая ей строковую переменную «d» для записи в файл «new.txt».

Затем создал файловый поток ввода «fs» с помощью класса FileInputStream, передав ему имя файла «new.txt», т. е. для чтения из него данных. Теперь объект класса ObjectInputStream «os» будет использовать объект файлового входного потока «fs» для чтения данных с помощью функции readObject() Java в операторе выполнения «println» класса «System.out». Затем мы склонны закрывать потоки ввода и вывода, вызывая функцию «закрыть», а оператор catch используется для получения любых исключений, которые произошли в части попытки, и предотвращения внезапного закрытия выполнения этой программы.

Выполнение этого файла кода Java и текстового файла отображало строковое значение на консоли.

Вывод

Использование класса ObjectInputStream является единственным методом, доступным для чтения веществ, использующих протокол Serializable или Externalizable. Подводя итог, мы включили все необходимые детали для использования класса java objectinputstream для чтения данных из входного потока файлового объекта. Для этого мы привели здесь два разных примера кода Java. В первом примере используется значение входной переменной целочисленного типа, а во втором примере значение строковой переменной отбрасывается, т. е. считывается из потока входного файла.