Рубрики

Java IO: ввод-вывод в Java с примерами

Java предоставляет различные потоки с пакетом ввода-вывода, который помогает пользователю выполнять все операции ввода-вывода. Эти потоки поддерживают все типы объектов, типов данных, символов, файлов и т. Д. Для полного выполнения операций ввода-вывода.

Прежде чем исследовать различные входные и выходные потоки, давайте рассмотрим 3 стандартных потока или потока по умолчанию, которые должна обеспечить Java, которые также наиболее распространены в использовании:

  1. System.in : это стандартный поток ввода, который используется для чтения символов с клавиатуры или любого другого стандартного устройства ввода.
  2. System.out : это стандартный поток вывода, который используется для получения результата программы на устройстве вывода, например на экране компьютера.

    Вот список различных функций печати, которые мы используем для вывода операторов:

    • print () : этот метод в Java используется для отображения текста на консоли. Этот текст передается в качестве параметра этому методу в виде строки. Этот метод печатает текст на консоли, а курсор остается в конце текста на консоли. Следующая печать происходит отсюда.
      Синтаксис:
      System.out.print(parameter);

      Пример:

      // Java-код для иллюстрации print ()

      import java.io.*;

        

      class Demo_print {

          public static void main(String[] args)

          {

        

              // используя print ()

              // все печатаются в

              // та же строка

              System.out.print("GfG! ");

              System.out.print("GfG! ");

              System.out.print("GfG! ");

          }

      }

      Выход:

      GfG! GfG! GfG! 
    • println () : этот метод в Java также используется для отображения текста на консоли. Он печатает текст на консоли, и курсор перемещается в начало следующей строки на консоли. Следующая печать происходит со следующей строки.
      Синтаксис:
      System.out.println(parameter);

      Пример:

      // Java-код для иллюстрации println ()

        

      import java.io.*;

        

      class Demo_print {

          public static void main(String[] args)

          {

        

              // используя println ()

              // все печатаются в

              // другая строка

              System.out.println("GfG! ");

              System.out.println("GfG! ");

              System.out.println("GfG! ");

          }

      }

      Выход:

      GfG! 
      GfG! 
      GfG! 
    • printf () : это самый простой из всех методов, так как он похож на printf в C. Обратите внимание, что System.out.print () и System.out.println () принимают один аргумент, но printf () может принимать несколько аргументов. , Это используется для форматирования вывода в Java.
      Пример:

      // Java-программа для демонстрации работы printf () в Java

      class JavaFormatter1 {

          public static void main(String args[])

          {

              int x = 100;

              System.out.printf(

                  "Printing simple"

                      + " integer: x = %d\n",

                  x);

        

              // это напечатает это до

              // 2 десятичных знака

              System.out.printf(

                  "Formatted with"

                      + " precison: PI = %.2f\n",

                  Math.PI);

        

              float n = 5.2f;

        

              // автоматически добавляет ноль

              // до самой правой части десятичного числа

              System.out.printf(

                  "Formatted to "

                      + "specific width: n = %.4f\n",

                  n);

        

              n = 2324435.3f;

        

              // здесь число форматируется из

              // правое поле и занимает

              // ширина 20 символов

              System.out.printf(

                  "Formatted to "

                      + "right margin: n = %20.4f\n",

                  n);

          }

      }

      Выход:

      Printing simple integer: x = 100
      Formatted with precison: PI = 3.14
      Formatted to specific width: n = 5.2000
      Formatted to right margin: n =         2324435.2500
  3. System.err : это стандартный поток ошибок, который используется для вывода всех данных об ошибках, которые может выдать программа, на экран компьютера или любое стандартное устройство вывода.

    Этот поток также использует все 3 вышеупомянутые функции для вывода данных об ошибках:

    • Распечатать()
    • Println ()
    • Е ()
  4. Пример:

    // Java-код для иллюстрации стандарта
    // входные выходные потоки

      

    import java.io.*;

    public class SimpleIO {

      

        public static void main(String args[])

            throws IOException

        {

      

            // InputStreamReader класс для чтения ввода

            InputStreamReader inp = null;

      

            // Сохраняем ввод в inp

            inp = new InputStreamReader(System.in);

      

            System.out.println("Enter characters, "

                               + " and '0' to quit.");

            char c;

            do {

                c = (char)inp.read();

                System.out.println(c);

            } while (c != '0');

        }

    }

    Входные данные :

    GeeksforGeeks0

    Выход:

    Enter characters, and '0' to quit.
    G
    e
    e
    k
    s
    f
    o
    r
    G
    e
    e
    k
    s
    0

Типы потоков:

  • В зависимости от типа операций потоки можно разделить на два основных класса:
    1. Входной поток: эти потоки используются для чтения данных, которые должны быть взяты как входные данные из исходного массива или файла или любого периферийного устройства. Например, FileInputStream, BufferedInputStream, ByteArrayInputStream и т. Д.
    2. Выходной поток: эти потоки используются для записи данных в виде выходных данных в массив или файл или любое выходное периферийное устройство. Например, FileOutputStream, BufferedOutputStream, ByteArrayOutputStream и т. Д.
  • В зависимости от типов файлов , потоки могут быть разделены на два основных класса, которые могут быть далее разделены на другие классы, как показано на диаграмме ниже, сопровождаемой пояснениями.
    1. ByteStream: используется для обработки байтов данных (8 бит). Хотя он имеет много классов, FileInputStream и FileOutputStream являются самыми популярными. FileInputStream используется для чтения из источника, а FileOutputStream используется для записи в место назначения. Вот список различных классов ByteStream:

      Stream classDescription
      BufferedInputStreamIt is used for Buffered Input Stream.
      DataInputStreamIt contains method for reading java standard datatypes.
      FileInputStreamThis is used to reads from a file
      InputStreamThis is an abstract class that describes stream input.
      PrintStreamThis contains the most used print() and println() method
      BufferedOutputStreamThis is used for Buffered Output Stream.
      DataOutputStreamThis contains method for writing java standard data types.
      FileOutputStreamThis is used to write to a file.
      OutputStreamThis is an abstract class that describe stream output.

      Пример:

      // Java-программа, иллюстрирующая
      // поток байтов для копирования
      // содержимое одного файла в другой файл.

      import java.io.*;

      public class BStream {

          public static void main(

              String[] args) throws IOException

          {

        

              FileInputStream sourceStream = null;

              FileOutputStream targetStream = null;

        

              try {

                  sourceStream

                      = new FileInputStream("sorcefile.txt");

                  targetStream

                      = new FileOutputStream("targetfile.txt");

        

                  // Чтение исходного файла и запись

                  // содержимое к целевому файлу побайтно

                  int temp;

                  while ((

                             temp = sourceStream.read())

                         != -1)

                      targetStream.write((byte)temp);

              }

              finally {

                  if (sourceStream != null)

                      sourceStream.close();

                  if (targetStream != null)

                      targetStream.close();

              }

          }

      }

      Выход:

      Shows contents of file test.txt 
    2. CharacterStream: в Java символы хранятся с использованием соглашений Unicode (см. Подробности). Символьный поток автоматически позволяет нам читать / записывать данные символ за символом. Хотя он имеет много классов, FileReader и FileWriter являются самыми популярными. FileReader и FileWriter — это символьные потоки, используемые для чтения из источника и записи в место назначения соответственно. Вот список различных классов CharacterStream:

      Stream classDescription
      BufferedReaderIt is used to handle buffered input stream.
      FileReaderThis is an input stream that reads from file.
      InputStreamReaderThis input stream is used to translate byte to character.
      OutputStreamReaderThis output stream is used to translate character to byte.
      ReaderThis is an abstract class that define character stream input.
      PrintWriterThis contains the most used print() and println() method
      WriterThis is an abstract class that define character stream output.
      BufferedWriterThis is used to handle buffered output stream.
      FileWriterThis is used to output stream that writes to file.

      Пример:

      // Java-программа, иллюстрирующая это
      // мы можем прочитать файл в удобочитаемом для человека виде
      // форматирование с использованием FileReader

        
      // Доступ к FileReader, FileWriter,
      // и IOException

      import java.io.*;

      public class GfG {

          public static void main(

              String[] args) throws IOException

          {

              FileReader sourceStream = null;

              try {

                  sourceStream

                      = new FileReader("test.txt");

        

                  // Чтение исходного файла и

                  // запись содержимого в целевой файл

                  // символ за символом.

                  int temp;

                  while ((

                             temp = sourceStream.read())

                         != -1)

                      System.out.println((char)temp);

              }

              finally {

                  // Закрытие потока, поскольку он больше не используется

                  if (sourceStream != null)

                      sourceStream.close();

              }

          }

      }

    3. Обратитесь сюда для полной разницы между байтом и классом символьного потока в Java.

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

Java IO: ввод-вывод в Java с примерами

0.00 (0%) 0 votes