`

java IO管道流

 
阅读更多
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();
	}
}

分享到:
评论

相关推荐

    javaIo操作的基础代码

    这是一个java文件IO的基础代码,里面主要介绍了,文件类,字节流,字符流,管道流的一些使用方法!

    javaIO案例

    javaIO经典案例,inputStream、outputStream、fileInputStream、fileOutputStream、管道流等经典案例

    Java之IO流学习总结

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据...

    JavaIO流详解

    流(Stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程的通信,或读写外围设备、外部文件等。 一个流,必有源端和目的端,它们可以是计算机内存的某些区域,...

    Java IO流体系图.pdf

    平常我们说的输入流与输出流指的就是输入流管道和输出流管道。与输入流管道相连的盛方数据的媒介就是流的源头,用于提供输入流管道抽取的流;与输出流管道相连的就是流的目的地,就是接收输出流管道中流的媒介,这些...

    Java数据流发送或接收数据高级IO流.ppt

    Java语言中数据流是发送或接收数据的管道。通常,你的程序是流的一个端点,其它程序或文件是流的另一个端点。 流的单向性:源端点和目的端点分别叫做input stream(输入流)和output stream(输出流)。 你可以从...

    JavaIO的常用方法.docx

    使用io的目的是想要 读写文件内部的内容,读写的方案就是流,既创建管道,让数据以流动的形式,先入先出的方式进行传输;

    重叠IO的管道服务器程序

    支持多客户端,异步传输

    毕业设计&课设-Java IO实验室(流上的文件系统、管道和过滤器模式).zip

    毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以...

    IO体系.java

    |--PipedInputStream/:管道流。管道读取流可以读取管道写入流的数据。注意:需要加多线程技术,否则会发生死锁。read方法是阻塞式的。 | |--ByteArrayInputStream/:字节数组输入流。操作的都是内存中的数组,所以...

    Java开发详解.zip

    031206_【第12章:JAVA IO】_管道流笔记.pdf 031207_【第12章:JAVA IO】_打印流笔记.pdf 031208_【第12章:JAVA IO】_System类对IO的支持笔记.pdf 031209_【第12章:JAVA IO】_BufferedReader笔记.pdf 031210_〖第...

    io:java io学习项目

    java io学习以io,nio为基础,netty为辅程序员素养:掌握面向对象的需求分析和设计理解SOLID原则,理解常用设计模式,熟练掌握重构理解面向服务的架构理解Linux操作系统的一些概念,比如内核空间,用户空间,系统调用,...

    从C++转到Java需注意的地方

    java.io:java.io提供了对流、文件、管道的读写操作。 java.lang:提供了java的基础类Objcet,Integar,Float……; java.net:提供对网络编程的支持。包括处理socket,URL,Internet寻址等。

    介绍Java对象序列化使用基础

    将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,管道到另一线程中或通过网络连接将对象数据发送到另一主机。对象序列化功能非常简单、强大,在RMI、Socket、JMS、EJB都有应用。对象...

    JAVA基础知识点,J2SE部分内容

    管道里输送的是水,但IO里输送的是字节。 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接. 类似的,当程序需要写入数据的时候,就会...

    java中的Io(input与output)操作总结(四)

    前面已经把java io的主要操作讲完了,这一节我们来说说关于java io的其他内容:Serializable序列化/DataOutputStream和DataInputStream类/管道流等等,感兴趣的朋友可以了解下

    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归档...

    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归档...

    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归档...

Global site tag (gtag.js) - Google Analytics