package com.io.file;
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
/**
* @类功能说明:管道流
* @类修改者:
* @修改日期:
* @修改说明:
* @作者:matieli
* @创建时间:May 26, 2012 9:56:29 AM
* @版本:V1.0
*
*/
class Read implements Runnable {
private PipedInputStream in;
public Read(PipedInputStream in) {
this.in = in;
}
public void run() {
try {
byte[] b = new byte[1024];
System.out.println("读取前,没有数据就阻塞");
int len = in.read(b);
System.out.println("读到数据,阻塞结束");
String s = new String(b, 0, len);
System.out.println(s);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Write implements Runnable {
private PipedOutputStream out;
public Write(PipedOutputStream out) {
this.out = out;
}
public void run() {
try {
System.out.println("开始写入数据,等待5秒");
Thread.sleep(5000);
out.write("管道流来了".getBytes());
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class PipedStreamDemo {
public static void main(String[] args)throws Exception {
PipedInputStream in=new PipedInputStream();
PipedOutputStream out=new PipedOutputStream();
in.connect(out);//使管道流,链接起来
Read r=new Read(in);
Write w=new Write(out);
new Thread(r).start();
new Thread(w).start();
}
}
分享到:
相关推荐
### Java IO流详解 #### 一、Input和Output Stream概览 在Java中,输入输出流(简称IO流)是用来处理文件读写的核心技术之一。它主要包括两类:以字节为导向的流和以字符为导向的流。 ##### 1.1 以字节为导向的流...
Java IO流是Java编程语言中处理输入和输出的重要机制,它允许程序与各种类型的输入源(如键盘、文件、网络连接)以及输出目标(如显示器、文件、网络)进行交互。在Java中,I/O流被设计为面向对象,使得处理数据变得...
三、管道流和缓冲流 - PipedInputStream和PipedOutputStream允许在不同线程间传递数据,形成管道。 - 缓冲流(BufferedInputStream/BufferedReader等)在内部维护一个缓冲区,提高读写效率,减少对底层操作系统的...
6.管道流(Piped): - **PipedInputStream** 和 **PipedOutputStream** 用于线程间的通信,一个线程写入数据,另一个线程读取数据。 7. 缓冲流(Buffered): - **BufferedInputStream** 和 **...
管道流(PipedReader、PipedWriter、PipedInputStream和PipedOutputStream)允许在不同线程间进行数据通信,提供了一种内部的连接机制。 8. **数据流** DataInputStream和DataOutputStream可以读写基本数据类型,...
管道流PipedInputStream和PipedOutputStream用于线程间通信,它们创建了一个数据通道,使得一个线程可以向管道写入数据,另一个线程可以从管道读取。 还有FileChannel和Selector等NIO(非阻塞I/O)组件,它们在高...
Java中的IO流是Java平台提供的一种处理输入输出数据的核心机制,广泛应用于文件读写、网络通信、数据转换等场景。IO流分为字节流(Byte Stream)和字符流(Character Stream),它们构成了Java IO系统的基础。 1. *...
在Java中,流(Stream)是IO系统的核心概念,它们可以被视为数据的序列,既可以读取(Input Stream)也可以写入(Output Stream)。 1. 输入流(Input Stream) - InputStream:所有输入流的基类,用于读取原始...
Java IO流处理是Java编程中一个非常重要的概念,它用于在不同数据源之间传输数据,如文件、网络、内存等。在Java中,IO流分为两大类:输入流(Input Stream)和输出流(Output Stream),它们分别用于数据的读取和...
总结而言,Java的I/O流体系庞大且灵活,涵盖了字节流、字符流、对象流、管道流等多种类型,满足了从简单的文件读写到复杂的数据处理的各种需求。理解并熟练掌握这些流的使用,对于任何Java开发者来说都是至关重要的...
Java IO流是Java编程语言中处理输入输出的重要组成部分,它为数据传输提供了高效且灵活的方式。在Java中,IO流可以分为两类:字节流(处理单个字节)和字符流(处理Unicode字符)。此外,它们又可以分为四大类:输入...
5. **管道流**:如PipedInputStream和PipedOutputStream,用于线程间的通信。 Java IO流提供了丰富的功能,理解和掌握流的使用对于Java开发者至关重要。通过深入学习这些流,你可以更有效地管理数据的输入输出,...
- `PipedInputStream`:用于管道流,通常与`PipedOutputStream`配对使用,实现线程间的数据传输。 - `SequenceInputStream`:将多个`InputStream`合并为一个流。 - **OutputStream**:用于写入字节数据。 - `...
7. **管道流**(PipedInputStream和PipedOutputStream)用于线程间的通信,一个线程写入数据,另一个线程读取。 8. **数据流**:DataInputStream和DataOutputStream支持基本数据类型的读写,如readInt()和...
在Java中,IO流操作是用于处理输入与输出的抽象机制,它提供了在不同的数据源和目标之间传输数据的手段。流的概念最早起源于UNIX系统中的管道概念,是一个连续的数据流,可以理解为水流,从源端流向目的端。 一、流...
管道流允许在两个线程之间创建数据通道,如PipedInputStream和PipedOutputStream,常用于多线程间的通信。 8. **文件操作** Java IO流中的File类提供了文件的创建、删除、重命名等操作,FileInputStream和...
5. **管道流(Pipe Streams)**:在多线程环境中,管道流允许线程间的数据通信。PipedInputStream和PipedOutputStream就是这样的例子。 6. **转换流(Transformer Streams)**:InputStreamReader和OutputStreamWriter...
Java IO流是Java平台中用于处理输入和输出的重要机制,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。在Java中,IO流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流...
Java IO流(包含类之间的关系图) Java IO流是Java语言中用于输入/输出操作的基础组件,涵盖了字节流和字符流两大类别。了解IO流的类之间的关系图是初学者学习Java IO流的基础。 字节流 字节流是Java IO流中最...