ПредишенСледващото

Java стандартна библиотека има много напреднали изход средства. Всички изходни възможности са съсредоточени в java.io. пакет

Има два паралелно йерархия на изходни класове. OutputStream и писател. Сценарист клас въведена в най-новите версии на Java.

Тази статия се обсъжда използването на потоци за изходните данни във файл. Йерархия изход OutputStream потоци, представени в следващата фигура.

Потоци О, outputstream

Нахранете Stream - абстрактен източник данните за стойността или приемник, който може да обработва информация. Има два вида на потока: байт и характер. В някои ситуации потоци символи са по-ефективни, отколкото байт. Класове, които произтичат от OutputStream на класа или писател. Методи носят имената на запис (), за да напишете единични байтове или масив от байтове (отговорен за изходни данни).

Клас OutputStream - абстрактен клас, който определя изхода на байт поток.

Наследниците на този клас определя къде могат да изпращат данните: масив от байтове във файл или канал. От масив от байтове да създадете текстов низ String.

методи OutputStream класа:

  • нищожен запис (инт б) пише един байт на изходния поток. този метод на аргумент е едно цяло число, което ви позволява да се обадя за писане, което му израз, не е необходимо да се извърши, за да го отведе до байт тип.
  • нищожен запис (байт б []), пише в изходен поток на всички, каза масив от байтове.
  • невалидни записване (байт б [], Int разстояние, Int дъл) пише в частта поток на масива дъл байтове започвайки с елемент б [Off].
  • нищожен флъш () изчиства всички изходни буфери, приключване на операцията по изтегляне.
  • невалидни близо () затваря изходящия поток. Следващите опити да пишат в този поток ще възбуди IOException.

Клас ByteArrayOutputStream е изходящите потоци, като се използва масив от байтове като изхода място. За да се създаде обект от този клас, можете да използвате един от нейните конструктори:

Първият конструктор създава масив от данни байта за съхранение на 32 байта на дължина, а вторият строителя създава масив с дължина размер.

Примери за използване ByteArrayOutputStream класове:

В клас ByteArrayOutputStream метод пише данните за запис в потока някои (масив от байтове). Този масив от байтове се съхранява в защитен поле Buf съоръжение ByteArrayOutputStream, което също е масив от байтове (защитен байт [] Buf). Тъй като методът на записване се хвърли изключение, а след това се обадите на този метод се поставя в try..catch блок.

Използването на ToString () и toByteArray (). можете да получите масив от байтове Buf като текст или директно като масив от байтове.

С метод writeTo да пренасочите масив от байтове в друга нишка. Този метод се като параметър обект OutputStream. който произвежда запис байт масив:

За ByteArrayOutputStream не е необходимо изрично да се затвори потока, като метод в близост.

FileOutputStream клас създава клас OutputStream обект, който можете да използвате, за да напишете байтове във файл. Това е основната класа за работа с файлове. Създаване на нов обект, не зависи от това дали даден файл съществува, или не. Ако файлът не съществува, а се създава нов файл. Ако се опитате да отворите файл само за четене, той ще бъде изхвърлен.

FileOutputStream има следните дизайнери:

Смисълът на дизайнерите на последния ясно от описанията им. Но има някои нюанси:

  • При отваряне на файл за писане, ако файлът не съществува, тя е създадена.
  • Ако файлът съществува, той ще бъде напълно обновен. Т.е. Ако отворите и затворете файла веднага, съдържанието на файла, ще бъдат унищожени; графичен файл ще бъде на нулева дължина.
  • Изключение от предишното правило е последното от дизайнерите. Ако прибавите третия сет параметър, за да е истина, то ще бъде приложена към преписката.

Всяка допълнителна функционалност в сравнение с базовия клас FileOutputStream добавя.

Клас BufferedOutputStream създава буфер за изходящите потоци. Този буфер магазини байта изход без постоянна връзка с устройството. Когато буферът е пълно, се извършва запис на данни.

BufferedOutputStream клас конструктор приема като обект параметър OutputStream - в този пример поток FileOutputStream на изходния файл.

BufferedOutputStream добавя много нови функции, че е лесно да се оптимизира vyvodai действието на потока трябва да се използва, за да се организира по-ефективно буфериран изход поток.

Клас DataOutputStream позволява да запишете данни върху текат през О произведена продукция интерфейс, който определя методите, които превръщат основни ценности формират последователност от байтове. Тези потоци правят по-лесно да се записват в двоичен файл с данни.

За да запишете всеки от примитивни видове е метод клас DataOutputStream на:

  • writeByte (междинно стойност) - 1 пише байт поток
  • writeChar (междинно стойност) - записва овъгляването 2-байт стойност
  • writeInt (междинно стойност) - записва INT на поток число стойност
  • writeShort (инт обем) - пише стойност кратък поток
  • writeFloat (флоат стойност) - пише 4 байта поплавък стойност в поток
  • writeDouble (двойна стойност) - пише поток от 8 байта стойност двойно
  • writeBoolean (булева стойност) - пише на стойност Булева поток байтове
  • writeLong (дълго стойност) - пише дълго стойност на потока
  • writeUTF (String стойност) - записва поток линия в UTF-8 кодиране

PrintStream е клас, който се използва за показване на информация на конзолата. Когато ние използваме System.out.println на повикване (), за да напише някаква информация за този начин използвате PrintStream, тъй като класът на променлива от система е клас обект на PrintStream, и метода println () - метод за PrintStream клас.

Но PrintStream може да се използва, за да записва информация в изходящия поток. Например, ние може да записва информация в файл:

Този пример използва PrintStream конструктор. който се като изходен параметър поток FileOutputStream. Човек би могъл също така да използвате дизайнера да посочите името на файла за протокола: PrintStream (низ име).

Използвайте println () метод произвежда информация за записване на изходящите потоци - т.е. FileOutputStream обекта. В случай на изход към конзолата чрез System.out.println () в конзолата служи като изходен поток.

За да изведете информация за PrintStream изходящия поток използва от следните методи:

Следният код показва възможността за използване на форматиран изход PrintStream клас:

ObjectOutputStream клас се използва за сериализирате обект на поток. Сериализация е процес обект състояние запис съответно в процеса на екстракция поток или възстановяване на състоянието на обекта от потока наречен deserialization. Сериализирането е много удобно, когато работата върви по-сложни обекти.

За да се създаде обект ObjectOutputStream трябва да премине към строителя на потока, в която искате да запишете обекти.

ObjectOutputStream за писане на данни с помощта на редица методи, сред които са следните:

Подкрепете проекта - споделете линка, благодаря!