一、PipedInputStream:管道输入流应该连接到管道输出流;管道输入流提供要写入管道输出流的所有数据字节。通常,数据由某个线程从 PipedInputStream 对象读取,并由其他线程将其写入到相应的 PipedOutputStream。
步骤:
输出流一端
1、PipedOutputStream pos = null;
pos = new PipedOutputStream();
2、调用write方法写入输出流
3、关闭输出流
二、PipedOutputStream:可以将管道输出流连接到管道输入流来创建通信管道。管道输出流是管道的发送端。通常,数据由某个线程写入 PipedOutputStream 对象,并由其他线程从连接的 PipedInputStream 读取。
步骤:
输入流一端
1、PipedInputStream pis = null;
pis = new PipedInputStream();
2、调用read方法读取输出流传递过来的信息
3、关闭输入流
三、测试一端
1、启动两个线程,分别获取发送者和接受者的输出、输入流
2、连接输入流到输出流
3、启动线程
import java.io.*;
public class PipedDemo02 {
public static void main(String[] args) throws IOException {
SendThread st = new SendThread();
ReceiveThread rt = new ReceiveThread();
PipedOutputStream out = st.getOut();
PipedInputStream in = rt.getIn();
out.connect(in);
Thread send = new Thread(st);
Thread receive = new Thread(rt);
send.start();
receive.start();
}
}
class SendThread implements Runnable{
PipedOutputStream pos = null;
public SendThread(){
pos = new PipedOutputStream();
}
public PipedOutputStream getOut(){
return this.pos;
}
@Override
public void run() {
String str = "Hello,World";
try {
pos.write(str.getBytes());
pos.close();
} catch (IOException e) {
}
System.out.println("发送的内容:"+str);
}
}
class ReceiveThread implements Runnable{
PipedInputStream pis = null;
public ReceiveThread(){
pis = new PipedInputStream();
}
public PipedInputStream getIn(){
return this.pis;
}
@Override
public void run() {
byte b[] = new byte[1024] ;
int len = 0 ;
try{
len = pis.read(b) ;
pis.close() ;
}
catch (Exception e){
}
System.out.println("接受的内容:"+new String(b,0,len));
}
}
发送的内容:Hello,World
接受的内容:Hello,World
分享到:
相关推荐
在Java中,输入输出流(简称IO流)是用来处理文件读写的核心技术之一。它主要包括两类:以字节为导向的流和以字符为导向的流。 ##### 1.1 以字节为导向的流 以字节为导向的流是指按照字节来进行数据读写的流,适用...
对于Java初学者来说,理解和掌握IO流的基本使用至关重要。在Java中,流被形象地比喻为数据传输的通道,数据可以从一个源头(如文件、网络、内存等)通过这个通道流向目的地。 1. **流的概念** 流可以理解为数据...
Java IO流是Java编程语言中处理输入和输出的重要机制,它允许程序与各种类型的输入源(如键盘、文件、网络连接)以及输出目标(如显示器、文件、网络)进行交互。在Java中,I/O流被设计为面向对象,使得处理数据变得...
IO流在Java中分为两大类:字节流和字符流,每种流又有输入流和输出流之分。字节流处理的是8位的字节数据,而字符流处理的是16位的Unicode字符。 1. 字节流: - **InputStream** 和 **OutputStream** 是所有字节...
管道流PipedInputStream和PipedOutputStream用于线程间通信,它们创建了一个数据通道,使得一个线程可以向管道写入数据,另一个线程可以从管道读取。 还有FileChannel和Selector等NIO(非阻塞I/O)组件,它们在高...
理解并熟练运用Java的IO流体系,不仅可以提高代码的可读性和效率,也是成为一名专业Java开发者必备的技能之一。在实际项目中,我们经常会遇到需要对文件进行读写、在网络间传输数据或处理用户输入的情况,这时候,...
Java IO流是Java平台核心特性之一,它负责在程序与外部资源之间传输数据。这个概念在Java编程中至关重要,因为它提供了处理输入(读取)和输出(写入)的机制,无论是从键盘、文件、网络还是其他数据源。在本文中,...
在Java中,流(Stream)是IO系统的核心概念,它们可以被视为数据的序列,既可以读取(Input Stream)也可以写入(Output Stream)。 1. 输入流(Input Stream) - InputStream:所有输入流的基类,用于读取原始...
在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...
### Java之精髓IO流 #### 一、Input和Output 在Java编程中,输入输出(Input/Output,简称IO)是处理数据交换的核心技术之一。Java的IO系统提供了丰富的类库来支持各种类型的输入输出操作,包括文件读写、网络通信...
在实际项目中,理解并熟练掌握IO流的使用是每个Java开发者必备的技能之一。通过阅读"Java_IO操作_(读写、追加、删除、移动、复制、修改).docx"文档,你可以深入了解这些概念,并通过实践来提升你的技能。
Java IO流处理是Java编程中一个非常重要的概念,它用于在不同数据源之间传输数据,如文件、网络、内存等。在Java中,IO流分为两大类:输入流(Input Stream)和输出流(Output Stream),它们分别用于数据的读取和...
### Java IO流几种经典使用方式 #### 一、输入输出流(Input/Output Stream) 在Java中,`java.io`包提供了处理输入/输出操作的基本类,主要包括`InputStream`和`OutputStream`。 ##### 1. 字节流(Byte Stream) **...
### Java IO流处理详解 #### I/O流概述 在Java编程中,输入/输出(I/O)处理是一项核心技能,涉及从键盘读取数据、向屏幕输出数据、从文件...理解并熟练掌握这些流的使用,对于任何Java开发者来说都是至关重要的。
在Java中,IO流操作是用于处理输入与输出的抽象机制,它提供了在不同的数据源和目标之间传输数据的手段。流的概念最早起源于UNIX系统中的管道...同时,熟练掌握各种流类的使用也是Java程序员必须具备的基础技能之一。
Java IO流教程宝典 ...Java IO流提供了丰富的功能,理解和掌握流的使用对于Java开发者至关重要。通过深入学习这些流,你可以更有效地管理数据的输入输出,无论是处理文件、网络数据还是进行多线程通信。
Java的IO(Input/Output)系统是其核心特性之一,为程序处理数据的输入与输出提供了强大而灵活的工具。本文将深入探讨Java中的输入输出流以及字符集的相关知识点。 一、Java IO流概述 Java的IO流模型是基于管道的...
Java IO 输入输出流是Java平台基础架构的重要组成部分,它提供了处理数据输入和输出的能力,使得程序可以与外部设备(如硬盘、网络、内存等)进行数据交换。在Java中,一切皆为对象,因此IO流操作也被设计为面向对象...
Java IO流的使用通常涉及“包装”(wrapping)概念,即一个流可以被另一个流包裹,形成一个流的链,以便在不同的层次上添加额外的功能。例如,一个`FileInputStream`可以被`BufferedInputStream`包裹,然后被`...