Класс Java.io.Writer в Java

Опубликовано: 15 Февраля, 2022

Этот абстрактный класс для записи в символьные потоки. Единственные методы, которые должен реализовывать подкласс, - это write (char [], int, int), flush () и close (). Однако большинство подклассов переопределят некоторые из методов, определенных здесь, чтобы обеспечить более высокую эффективность, дополнительную функциональность или и то, и другое.
Конструктор

  • protected Writer (): Создает новую запись потока символов, критические секции которой будут синхронизироваться на самом модуле записи.
  • protected Writer (Блокировка объекта): Создает новую запись потока символов, критические секции которой будут синхронизироваться с данным объектом.

Методы:

  • Writer append (char c): добавляет указанный символ к этому писателю. Вызов этого метода формы out.append (c) ведет себя точно так же, как и вызов
    out.write (c)
     Синтаксис: public Writer append (char c)
                  выбрасывает IOException
    Параметры:
    c - 16-битный символ для добавления
    Возврат:
    Этот писатель
    Броски:
    IOException
  • Writer append (CharSequence csq): добавляет указанную последовательность символов к этому писателю. Вызов этого метода формы out.append (csq) ведет себя точно так же, как и вызов
    out.write (csq.toString ())
    В зависимости от спецификации toString для символьной последовательности csq, вся последовательность не может быть добавлена. Например, вызов метода toString символьного буфера вернет подпоследовательность, содержимое которой зависит от позиции и ограничения буфера.
     Синтаксис: public Writer append (CharSequence csq)
                  выбрасывает IOException
    Параметры:
    csq - добавляемая последовательность символов. Если csq имеет значение null, 
    затем к этому писателю добавляются четыре символа «ноль».
    Возврат:
    Этот писатель
    Броски:
    IOException
  • Writer append (CharSequence csq, int start, int end): добавляет подпоследовательность указанной последовательности символов к этому записывающему устройству. Добавляет подпоследовательность указанной последовательности символов к этому модулю записи.
     Синтаксис: public Writer append (CharSequence csq,
                int start,
                намереваться)
                  выбрасывает IOException
    Параметры:
    csq - последовательность символов, из которой будет добавлена подпоследовательность. 
    Если csq имеет значение null, символы будут добавлены как 
    если csq содержит четыре символа «ноль».
    start - индекс первого символа в подпоследовательности
    end - Индекс символа, следующего за последним символом в подпоследовательности
    Возврат:
    Этот писатель
    Броски:
    IndexOutOfBoundsException
    IOException
  • abstract void close (): закрывает поток, сначала очищая его. После закрытия потока дальнейшие вызовы write () или flush () вызовут выброс исключения IOException. Закрытие ранее закрытого потока не имеет никакого эффекта.
     Синтаксис: public abstract void close ()
                        выбрасывает IOException
    Броски:
    IOException
  • abstract void flush (): очищает поток. Если поток сохранил в буфере какие-либо символы из различных методов write (), немедленно запишите их по назначению. Затем, если этот пункт назначения - другой символ или поток байтов, очистите его. Таким образом, один вызов flush () очистит все буферы в цепочке Writers и OutputStreams.
     Синтаксис: public abstract void flush ()
                        выбрасывает IOException
    Броски:
    IOException
  • void write (char [] cbuf): записывает массив символов.
     Синтаксис: public void write (char [] cbuf)
               выбрасывает IOException
    Параметры:
    cbuf - массив символов для записи
    Броски:
    IOException - Если возникает ошибка ввода-вывода
  • abstract void write (char [] cbuf, int off, int len): записывает часть массива символов.
     Синтаксис: public abstract void write (char [] cbuf,
             int off,
             int len)
                        выбрасывает IOException
    Параметры:
    cbuf - Массив символов
    off - Смещение, с которого нужно начинать писать символы
    len - Количество символов для записи
    Броски:
    IOException
  • void write (int c): записывает один символ. Записываемый символ содержится в 16 младших битах заданного целочисленного значения; 16 старших битов игнорируются.
    Подклассы, которые намереваются поддерживать эффективный односимвольный вывод, должны переопределить этот метод.

     Синтаксис: public void write (int c)
               выбрасывает IOException
    Параметры:
    c - int, определяющий символ для записи
    Броски:
    IOException
  • void write (String str): записывает строку.
     Синтаксис: public void write (String str)
               выбрасывает IOException
    Параметры:
    str - строка для записи
    Броски:
    IOException
  • void write (String str, int off, int len): записывает часть строки.
     Синтаксис: public void write (String str,
             int off,
             int len)
               выбрасывает IOException
    Параметры:
    str - Строка
    off - Смещение, с которого нужно начинать писать символы
    len - Количество символов для записи
    Броски:
    IndexOutOfBoundsException

Program :

//Java program demonstrating Writer methods
  
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
class WriterDemo
{
    public static void main(String[] args) throws IOException
    {
        Writer wr=new PrintWriter(System.out);
        char c[] = {"B","C","D","E","F"};
        CharSequence cs = "JKL";
        String str = "GHI";
  
        //illustrating write(int c)
        wr.write(65);
          
        //flushing the stream
        wr.flush();
          
        //illustrating write(char[] c,int off,int len)
        wr.write(c);
        wr.flush();
          
        //illustrating write(String str,int off,int len)
        wr.write(str);
        wr.flush();
          
        //illustrating append(Charsequence cs,int start,int end)
        wr.append(cs);
        wr.flush();
          
        //illustrating append(int ch)
        wr.append("M");
        wr.flush();
  
        //closing the stream
        wr.close();
    }
}

Выход :

 ABCDEFGHIJKLM

Автор статьи - Нишант Шарма . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

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

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .