The Клас PipedReader в Java е част от java.io пакет и се използва за четене на символни данни от канал. Този клас позволява комуникация между нишки, където една нишка записва данни с помощта на PipedWriter, а друга ги чете с помощта PipedReader.
Характеристики на класа PipedReader:
- Позволява четене на данни през тръба.
- Той използва буфер за съхраняване на данни, получени от PipedWriter.
- Работи с PipedWriter, за да се увери, че данните се прехвърлят безопасно между нишките.
- Ако тръбата се счупи, извежда грешка.
Какво е канал в Java?
В Java тръба се използва за свързване на две нишки. Едната нишка се използва за изпращане на данни през канала, а другата нишка чете данните. Ако нишката, която изпраща данните, спре или се срине, каналът се счита за счупен.
Декларация на клас PipedReader
Декларацията на класа PipedReader е:
публичен клас PipedReader разширява Reader
Всички внедрени интерфейси:
алгоритъм на кабината
- Затваряне: Този интерфейс се използва за затваряне на потока и освобождаване на ресурси, когато вече не са необходими.
- Автоматично затваряне: Този интерфейс позволява автоматично управление на ресурсите в изрази за опит с ресурси.
- Четимо: Този интерфейс позволява да се четат данни от потока.
Конструктори на PipedReader
Този клас се състои от четири конструктора, с помощта на които можем да създадем обект от този клас по различни начини. Следните са наличните конструктори в този клас:
1. PipedReader(): Този конструктор създава PipedReader, който все още не е свързан с нито един писател.
Синтаксис:
публичен PipedReader()
2. PipedReader(int pipeSize): Този конструктор създава aPipedReader с определен размер на тръбата.
Синтаксис:
публичен PipedReader(int pSize)
3. PipedReader (PipedWriter src): Този конструктор създава PipedReader, който е свързан към PipedWriterStream src.
публичен PipedReader(PipedWriter src)
как да получите текуща дата в java
4. PipedReader(PipedWriter src int pipeSize): Този конструктор създава свързан PipedReader с определен размер и свързан към дадения PipedWriter.
Синтаксис:
public PipedReader(PipedWriter src int pSize)
Java PipedReaderMethods
Изображението по-долу демонстрира методите на класа PipedReader.

конкатенационен низ в java
Сега ще обсъдим подробно всеки метод един по един:
1. прочетете(): Този метод се използва за получаване на следващия знак от PipedReader. Блокира, докато има данни за четене или възникне грешка.
Синтаксис:
public int read() хвърля IOException
- Параметър: Този метод не приема никакъв параметър.
- Тип връщане: Този метод връща следващия знак като цяло число или връща -1, ако е достигнат краят на потока.
Пример:
Java// Demonstrating the working // of read() method import java.io.*; public class GeeKs { public static void main(String[] args) throws IOException { PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(); // Connect the reader and writer r.connect(w); // Write data to the PipedWriter w.write(71); System.out.println('Read: ' + (char) r.read()); w.write(69); System.out.println('Read: ' + (char) r.read()); w.write(75); System.out.println('Read: ' + (char) r.read()); } }
Изход
Read: G Read: E Read: K
2. read(char[] carray int offset int maxlen): Този метод се използва за четене до maxlen знак от PipedReader Stream към масива от знаци. Методът блокира, ако бъде достигнат краят на потока или е хвърлено изключение.
Синтаксис:
public int read(char[] carray int offset int maxlen) хвърля IOException
- Параметър: Този метод включва три параметъра, които са изброени по-долу:
- керей: Това е буферът, в който ще бъдат прочетени данните.
- офсет: Това е началната позиция в масива
- макслен: Максималният брой знаци за четене в масива.
- Тип връщане: Този метод връща maxlen байта от данните като цяло число или връща -1, ако е достигнат краят на потока
Пример:
Java// Demonstrating the working // of read(char[] carray int offset int maxlen) import java.io.*; public class Geeks { public static void main(String[] args) throws IOException { PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(); r.connect(w); // Write data to PipedWriter w.write(71); // G w.write(69); // E w.write(75); // K w.write(83); // S // Read data into an array char[] b = new char[5]; r.read(b 0 5); System.out.print('Read characters: '); for (char c : b) { System.out.print(c); } } }
Изход
Read characters: GEKS
мрежова топология
3. затвори (): Този метод се използва за затваряне на PipedReader.
Синтаксис:
public void close() хвърля IOException
mysql показва потребители
- Параметър: Този метод не приема никакъв параметър
- Тип връщане: Този метод не връща нищо
Пример:
Java// Demonstrating the working // of close() method import java.io.*; public class Geeks { public static void main(String[] args) throws IOException { PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(); r.connect(w); w.write(71); // Close the reader r.close(); System.out.println('Stream closed.'); } }
Изход
Stream closed.
4. готов(): Този метод се използва за проверка дали потокът е готов за четене.
Синтаксис:
public boolean ready() хвърля IOException
- Параметър: Този метод не приема никакъв параметър
- Тип връщане: Този метод връща true, ако потокът е готов за четене, в противен случай връща false.
Пример:
Java// Demonstrating the working // of ready() method import java.io.*; public class Geeks { public static void main(String[] args) throws IOException { PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(); r.connect(w); w.write(71); // Check if the stream is ready to be read System.out.println('Stream is ready to be read: ' + r.ready()); } }
Изход
Stream is ready to be read: true
5. затвори (): Този метод се използва за затваряне на потоците на PipedReader.
Синтаксис:
публично невалидно затваряне()
- Параметър: Този метод не приема никакъв параметър.
- Тип връщане: Този метод не връща нищо.
Пример:
Java// Demonstrating the working // of close() method import java.io.*; public class Geeks{ public static void main(String[] args) { try { // Create a PipedReader and PipedWriter PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(); // Connect the PipedReader to the PipedWriter r.connect(w); // Write a character to the PipedWriter w.write('A'); // Read and print the character from the PipedReader System.out.println('Read: ' + (char) r.read()); // Output: A // Close the PipedReader stream r.close(); System.out.println('Stream closed.'); } catch (IOException e) { e.printStackTrace(); } } }
Изход
Read: A Stream closed.Създаване на тест