Руководство по Java Core. Файлы и работа с ними. DataOuputStream.

DataOuputStream позволяет нам записывать в необходмый файл примитивные типы данных.

Этот класс имеет следующие методы:

  • public final void write (byte[] w, int off, int len) throws IOException
    Этот метод записывает в выходной файл массив байтов с элемента off до элемента len. В случае ошибки выдаёт IOException.
  • public final int write (byte [] b) throws IOexception
    Этот метод записывает массив байтов в выходной файл. Возвращает общее количество записанных байтов. В случае ошибки выдаёт IOException.
  • public void flush() throws IOException
    Этот метод “сбрасывает” выходной поток. В случае ошибки выдаёт IOException.
  • public void writeBytes(String s) throws IOException
    Этот метод записывает строку (String) в выходной файл, как последовательность байтов. Каждый символ в строке записывается в последовательность, отбрасывая все байты после 8.
  • public final void write*SomeType*() throws IOException
    В качестве *SomeType* могут выступать: boolean, byte, short, int.
    Эти методы записывают соответствующий примитивный тип данных в выходной поток в виде байтов.

Для того, чтобы понять, как это используется на практике, рассмотрим пример простого приложения.

Пример:


import java.io.*;

public class DataOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        DataOutputStream dataOutputStream =
                new DataOutputStream(new FileOutputStream("/home/proselyte/Programming/Projects/Proselyte/JavaCore/resources/inputFile.txt"));
        dataOutputStream.writeUTF("This is test message.");

        DataInputStream dataInputStream =
                new DataInputStream(new FileInputStream("/home/proselyte/Programming/Projects/Proselyte/JavaCore/resources/inputFile.txt"));

        while (dataInputStream.available() != 0) {
            String message = dataInputStream.readUTF();
            System.out.println(message);
        }
    }
}

В результате работы программы мы получим следующий результат:


/*Some system messages*/
This is test message.

В этом уроке мы изучили основы класса DataOutputStream и рассмотрели пример простого приложения с его использованием.