一、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流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据...
这是一个java文件IO的基础代码,里面主要介绍了,文件类,字节流,字符流,管道流的一些使用方法!
javaIO经典案例,inputStream、outputStream、fileInputStream、fileOutputStream、管道流等经典案例
流(Stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程的通信,或读写外围设备、外部文件等。 一个流,必有源端和目的端,它们可以是计算机内存的某些区域,...
平常我们说的输入流与输出流指的就是输入流管道和输出流管道。与输入流管道相连的盛方数据的媒介就是流的源头,用于提供输入流管道抽取的流;与输出流管道相连的就是流的目的地,就是接收输出流管道中流的媒介,这些...
支持多客户端,异步传输
Java语言中数据流是发送或接收数据的管道。通常,你的程序是流的一个端点,其它程序或文件是流的另一个端点。 流的单向性:源端点和目的端点分别叫做input stream(输入流)和output stream(输出流)。 你可以从...
使用io的目的是想要 读写文件内部的内容,读写的方案就是流,既创建管道,让数据以流动的形式,先入先出的方式进行传输;
毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以...
管道读取流可以读取管道写入流的数据。注意:需要加多线程技术,否则会发生死锁。read方法是阻塞式的。 | |--ByteArrayInputStream/:字节数组输入流。操作的都是内存中的数组,所以不需要关闭。把数组封装到流中,...
031206_【第12章:JAVA IO】_管道流笔记.pdf 031207_【第12章:JAVA IO】_打印流笔记.pdf 031208_【第12章:JAVA IO】_System类对IO的支持笔记.pdf 031209_【第12章:JAVA IO】_BufferedReader笔记.pdf 031210_〖第...
java io学习以io,nio为基础,netty为辅程序员素养:掌握面向对象的需求分析和设计理解SOLID原则,理解常用设计模式,熟练掌握重构理解面向服务的架构理解Linux操作系统的一些概念,比如内核空间,用户空间,系统调用,...
将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,管道到另一线程中或通过网络连接将对象数据发送到另一主机。对象序列化功能非常简单、强大,在RMI、Socket、JMS、EJB都有应用。对象...
我们使用JAVA的IO操作,必须要使用java.io里的类,所以在使用之前先要导入这个包 3.了解java.io包下的整体结构层次 按层次高低划分 由低---高 3-1.字节流 •抽象父类是 InputStream 和OutputStream 3-2.字符流...
学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...
java.io:java.io提供了对流、文件、管道的读写操作。 java.lang:提供了java的基础类Objcet,Integar,Float……; java.net:提供对网络编程的支持。包括处理socket,URL,Internet寻址等。
10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档...
10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档...
10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档...