Рубрики

Java.io.DataInputStream класс в Java | Комплект 1

Поток ввода данных позволяет приложению читать примитивные типы данных Java из нижележащего входного потока машинно-независимым способом (вместо необработанных байтов). Вот почему он называется DataInputStream — потому что он читает данные (числа), а не только байты.

  • Приложение использует поток вывода данных для записи данных, которые впоследствии могут быть прочитаны потоком ввода данных. Потоки ввода данных и потоки вывода данных представляют строки Unicode в формате, который является небольшой модификацией UTF-8.
  • DataInputStream не обязательно безопасен для многопоточного доступа. Безопасность потоков является необязательной и является обязанностью пользователей методов этого класса.

Конструктор:

  • DataInputStream (InputStream in): создает DataInputStream, который использует указанный базовый InputStream.

Важные методы:

  • int read (byte [] b): считывает некоторое количество байтов из входящего потока и сохраняет их в буферном массиве b.
    Syntax: public final int read(byte[] b)
                   throws IOException
    Parameters:
    b - the buffer into which the data is read.
    Returns:
    the total number of bytes read into the buffer, 
    or -1 if there is no more data because the end of the stream has been reached.
    Throws:
    IOException
    
  • int read (byte [] b, int off, int len): считывает до байтов данных из содержащегося входного потока в массив байтов.
    Syntax:public final int read(byte[] b,
           int off,
           int len)
                   throws IOException
    Parameters:
    b - the buffer into which the data is read.
    off - the start offset in the destination array b
    len - the maximum number of bytes read.
    Returns:the total number of bytes read into the buffer, or -1 if there is no more data 
    Throws:
    NullPointerException 
    IndexOutOfBoundsException 
    IOException 
    
  • boolean readBoolean (): читает один входной байт и возвращает истину, если этот байт ненулевой, ложь, если этот байт равен нулю.
    Syntax:public final boolean readBoolean()
                              throws IOException
    Returns:the boolean value read.
    Throws:
    EOFException
    IOException 
    
  • char readChar (): читает два входных байта и возвращает значение символа.
    Syntax:public final char readChar()
                        throws IOException
    Returns:the next two bytes of this input stream, interpreted as a char.
    Throws:
    EOFException 
    IOException
  • double readDouble (): читает восемь входных байтов и возвращает двойное значение.
    Syntax:public final double readDouble()
                            throws IOException
    Returns:
    the next eight bytes of this input stream, interpreted as a double.
    Throws:
    EOFException
    IOExceptioN
  • int readInt (): читает четыре входных байта и возвращает значение типа int.
    Syntax:public final int readInt()
                      throws IOException
    Returns: the next four bytes of this input stream, interpreted as an int.
    Throws:
    EOFException
    IOException
    

Класс DataInputStream часто используется вместе с DataOutputStream.

Реализации некоторых важных методов
Программа 1:

// Java-программа для демонстрации DataInputStream
// Эта программа использует try-with-resources. Требуется JDK 7 или более поздняя версия.

import java.io.*;

class DataInputStreamDemo 

{

    public static void main(String args[]) throws IOException 

    {

        // запись данных.

        try ( DataOutputStream dout =

                    new DataOutputStream(new FileOutputStream("file.dat")) )

        {

            dout.writeDouble(1.1);

            dout.writeInt(55);

            dout.writeBoolean(true);

            dout.writeChar('4');

        }

          

        catch(FileNotFoundException ex)

        {

            System.out.println("Cannot Open the Output File");

            return;

        }

          

        // читаем данные обратно.

        try ( DataInputStream din =

                    new DataInputStream(new FileInputStream("file.dat")) )

        {

   

                         // иллюстрирующий метод readDouble ()

            double a = din.readDouble();

                         // иллюстрируем метод readInt ()

            int b = din.readInt();

                         // иллюстрирующий метод readBoolean ()

            boolean c = din.readBoolean();

                         // иллюстрирующий метод readChar ()

            char d=din.readChar();

            System.out.println("Values: " + a + " " + b + " " + c+" " + d);

        }

        catch(FileNotFoundException e)

        {

            System.out.println("Cannot Open the Input File");

            return;

        }

    }

}

Обратите внимание, что больше нет явного вызова метода close (). Об этом заботится конструкция try-with-resources.

Выход:

Values: 1.1 55 true 4

Следующая статья: Java.io.DataInputStream класс в Java | Набор 2

Эта статья предоставлена Nishant Sharma . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Java.io.DataInputStream класс в Java | Комплект 1

0.00 (0%) 0 votes