`
msn877763580
  • 浏览: 83826 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java IO 之管道流的使用

阅读更多

 

一、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中,输入输出流(简称IO流)是用来处理文件读写的核心技术之一。它主要包括两类:以字节为导向的流和以字符为导向的流。 ##### 1.1 以字节为导向的流 以字节为导向的流是指按照字节来进行数据读写的流,适用...

    java零基础自学 之 JavaIO流处理

    对于Java初学者来说,理解和掌握IO流的基本使用至关重要。在Java中,流被形象地比喻为数据传输的通道,数据可以从一个源头(如文件、网络、内存等)通过这个通道流向目的地。 1. **流的概念** 流可以理解为数据...

    JavaIO流详细总结

    Java IO流是Java编程语言中处理输入和输出的重要机制,它允许程序与各种类型的输入源(如键盘、文件、网络连接)以及输出目标(如显示器、文件、网络)进行交互。在Java中,I/O流被设计为面向对象,使得处理数据变得...

    java io流源代码

    IO流在Java中分为两大类:字节流和字符流,每种流又有输入流和输出流之分。字节流处理的是8位的字节数据,而字符流处理的是16位的Unicode字符。 1. 字节流: - **InputStream** 和 **OutputStream** 是所有字节...

    Javaio流思维导图

    管道流PipedInputStream和PipedOutputStream用于线程间通信,它们创建了一个数据通道,使得一个线程可以向管道写入数据,另一个线程可以从管道读取。 还有FileChannel和Selector等NIO(非阻塞I/O)组件,它们在高...

    java中IO流例子

    理解并熟练运用Java的IO流体系,不仅可以提高代码的可读性和效率,也是成为一名专业Java开发者必备的技能之一。在实际项目中,我们经常会遇到需要对文件进行读写、在网络间传输数据或处理用户输入的情况,这时候,...

    《JAVA_IO流学习总结》

    Java IO流是Java平台核心特性之一,它负责在程序与外部资源之间传输数据。这个概念在Java编程中至关重要,因为它提供了处理输入(读取)和输出(写入)的机制,无论是从键盘、文件、网络还是其他数据源。在本文中,...

    javaIO(java中的流的介绍)

    在Java中,流(Stream)是IO系统的核心概念,它们可以被视为数据的序列,既可以读取(Input Stream)也可以写入(Output Stream)。 1. 输入流(Input Stream) - InputStream:所有输入流的基类,用于读取原始...

    Java IO 使用例

    在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...

    java之精髓IO流

    ### Java之精髓IO流 #### 一、Input和Output 在Java编程中,输入输出(Input/Output,简称IO)是处理数据交换的核心技术之一。Java的IO系统提供了丰富的类库来支持各种类型的输入输出操作,包括文件读写、网络通信...

    Java_IO.rar_IO流 java_java io流

    在实际项目中,理解并熟练掌握IO流的使用是每个Java开发者必备的技能之一。通过阅读"Java_IO操作_(读写、追加、删除、移动、复制、修改).docx"文档,你可以深入了解这些概念,并通过实践来提升你的技能。

    java_IO流的处理.ppt

    Java IO流处理是Java编程中一个非常重要的概念,它用于在不同数据源之间传输数据,如文件、网络、内存等。在Java中,IO流分为两大类:输入流(Input Stream)和输出流(Output Stream),它们分别用于数据的读取和...

    Java IO流几种经典使用方式

    ### Java IO流几种经典使用方式 #### 一、输入输出流(Input/Output Stream) 在Java中,`java.io`包提供了处理输入/输出操作的基本类,主要包括`InputStream`和`OutputStream`。 ##### 1. 字节流(Byte Stream) **...

    java_io流的处理

    ### Java IO流处理详解 #### I/O流概述 在Java编程中,输入/输出(I/O)处理是一项核心技能,涉及从键盘读取数据、向屏幕输出数据、从文件...理解并熟练掌握这些流的使用,对于任何Java开发者来说都是至关重要的。

    java中的IO流操作大全

    在Java中,IO流操作是用于处理输入与输出的抽象机制,它提供了在不同的数据源和目标之间传输数据的手段。流的概念最早起源于UNIX系统中的管道...同时,熟练掌握各种流类的使用也是Java程序员必须具备的基础技能之一。

    java IO流 教程宝典

    Java IO流教程宝典 ...Java IO流提供了丰富的功能,理解和掌握流的使用对于Java开发者至关重要。通过深入学习这些流,你可以更有效地管理数据的输入输出,无论是处理文件、网络数据还是进行多线程通信。

    Java io输入输出流及字符集

    Java的IO(Input/Output)系统是其核心特性之一,为程序处理数据的输入与输出提供了强大而灵活的工具。本文将深入探讨Java中的输入输出流以及字符集的相关知识点。 一、Java IO流概述 Java的IO流模型是基于管道的...

    JAVA IO 输入输出流

    Java IO 输入输出流是Java平台基础架构的重要组成部分,它提供了处理数据输入和输出的能力,使得程序可以与外部设备(如硬盘、网络、内存等)进行数据交换。在Java中,一切皆为对象,因此IO流操作也被设计为面向对象...

    java IO流读写

    Java IO流的使用通常涉及“包装”(wrapping)概念,即一个流可以被另一个流包裹,形成一个流的链,以便在不同的层次上添加额外的功能。例如,一个`FileInputStream`可以被`BufferedInputStream`包裹,然后被`...

Global site tag (gtag.js) - Google Analytics