`
初出茅庐555
  • 浏览: 1862 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java IO 管道流实例

    博客分类:
  • java
阅读更多
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;

public class PipedStream {
/*
* 目的:测试java管道流
* 设计思路: 两个内部类;继承Thread通过run()发送,接受信息
* 描述:本示例不仅阐述了java管道流,同时使用了java设计模式  Singleton(单例)
*/
//程序入口
public static void main(String[] args) {
//输出\输入管道流类对象;通过类方法单例获取
PipedOutputStream out=Sender.getOut();
PipedInputStream  in=Receiver.getIn();

try{
//输入\输出管道流链接方法 connect()
in.connect(out);
}catch(IOException ioe){
ioe.printStackTrace();
}
//启动线程,用start()
new Sender().start();
new Receiver().start();
}
//通过管道流链接发送消息;使用单例必须声明静态内部类
static class Sender extends Thread{
private static PipedOutputStream out=null;
//单例返回管道对象
public static synchronized PipedOutputStream getOut(){
if(out==null){
out=new PipedOutputStream();
}
return out;
}
//发送消息
public void run() {
String mess="Hello Receiver;I'm Sender !\n";
try{
//注意:转成字节数组发送
out.write(mess.getBytes());
out.close();
}catch(IOException ioe){
ioe.printStackTrace();
}
}

}
//通过管道流链接接受消息;使用单例必须声明静态内部类
static class Receiver extends Thread{

private static PipedInputStream in=null;
//单例返回管道对象
public static synchronized PipedInputStream getIn(){
if(in==null){
in=new PipedInputStream();
}
return in;
}
//接受消息
public void run() {
  //定义字节数组
  byte[] byt=new byte[1024];
  try{
  //读取消息
  int len=in.read(byt);
  //生成新字符串
  String mess=new String(byt, 0, len);
  System.out.println("The Sender say:\n"+mess);
  }catch(Exception e){
  e.printStackTrace();
  }
}
}

}
分享到:
评论

相关推荐

    Java-IO流高级-例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar

    本资料包“Java-IO流高级-例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar”提供了一个深入学习Java IO流的全面资源,包含实例题目、源代码以及PPT教学材料,适合对Java IO有进阶需求的开发者。 1. **Java ...

    JavaIO实例代码

    在这个Java IO实例代码集合中,我们很可能会看到关于文件读写、流操作、字符编码、缓冲区使用以及对象序列化的示例。 1. **文件读写**:Java IO 提供了File类,可以用来创建、删除、重命名文件以及获取文件属性。...

    javaIO案例

    在这个"javaIO案例"中,我们关注的是如何使用核心的Java IO类,如`InputStream`、`OutputStream`、`FileInputStream`、`FileOutputStream`以及`PipedInputStream`和`PipedOutputStream`等管道流。这些类构成了Java ...

    javaIO详细讲解+详细案例

    ### Java IO 流详解 #### 一、Java IO 流概念及作用 Java IO(Input/Output)流是Java编程语言中的一个重要组成部分,主要用于处理数据的输入与输出。流(Stream)可以理解为一组有序的、有起点和终点的字节集合,...

    Java IO 使用例

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

    马士兵老师的java io流课程

    Java IO流课程是Java编程领域中的重要组成部分,尤其对于初学者和有经验的开发者来说,理解和熟练运用IO流是至关重要的。马士兵老师的这门课程深入浅出地讲解了Java IO流的相关概念和技术,旨在帮助学员掌握数据输入...

    Java io的基本操作很全面的代码呀

    在这个“Java io的基本操作很全面的代码”项目中,我们可以看到一系列针对Java IO的实例,对于学习和理解Java IO有着极大的帮助。 首先,我们来看看Java IO的基础知识。Java IO主要包括以下几大核心类: 1. **...

    Java IO 编程集合

    总的来说,Java IO编程集合涵盖了从基础的文件操作到复杂的流处理,通过实例学习,可以更好地理解和掌握Java在处理文件输入输出方面的强大功能。在实践中,我们需要根据具体需求选择合适的IO类,合理地组织代码,...

    java io流学习笔记1

    在Java IO中,还有一类“管道流”(PipedStream),它们允许线程间的数据传递。此外,过滤流(FilterStream)是一种特殊的流,可以添加到现有流之上,提供额外的功能,如缓冲、转换或压缩。 Java IO库提供了一些...

    IO流详细API实例

    以上只是Java IO流的一部分核心概念和常用API,实际上Java IO库还包括更复杂的数据压缩、管道流、套接字通信等多个方面的内容。理解并熟练运用这些知识对于进行高效的文件操作和网络通信至关重要。

    java 进程间利用管道通信实例

    在Java中,`java.io.PipedInputStream`和`java.io.PipedOutputStream`是用于创建管道的类。PipedInputStream作为接收端,它从管道中读取数据;而PipedOutputStream则是发送端,负责将数据写入管道。两者需要通过构造...

    javaio流学习总结范文.doc

    Java IO 流是Java平台中用于处理输入输出的...在实际开发中,我们还需要了解更高级的特性,如对象序列化、管道流、多线程I/O以及NIO(New IO)和NIO.2等。理解并熟练掌握Java IO流对于处理Java程序的输入输出至关重要。

    JAVA中的IO流简介

    在Java编程语言中,输入/输出(Input/Output,简称IO)流是处理数据传输的核心概念,用于在程序与外部设备、文件系统或其他程序之间进行数据交换。Java提供了丰富的IO流类库,使得数据的读写操作变得既灵活又强大。...

    java-io流-文件流

    Java IO流-文件流 Java IO流是Java语言中用于输入/输出操作的基本组件,它提供了多种方式来读取和写入数据,包括文件、网络、内存等。IO流体系可以分为两大类:字节流和字符流。 字节流 字节流是最基本的IO流,...

    Java,彻底明白Java语言中的IO系统

    Java提供了一套完整的IO系统来处理各种数据流的读写操作,包括字符流、字节流以及随机访问文件等。本文将深入探讨Java IO系统的各个组成部分及其应用场景。 #### 1. Java IO系统概述 Java IO系统主要由`java.io`包...

    Java中IO解读与使用实例-动力节点共17页.pdf

    本篇文章将详细解读Java IO,并通过实例深入理解其使用方法。 Java IO API提供了丰富的类和接口,使得开发者可以有效地与外部资源进行交互,包括文件、网络、内存缓冲区等。在Java的IO体系中,主要有两种流:字节流...

    Java IO系统资料

    在Java中,管道流(PipeStream)允许两个线程之间通过管道传递数据,常用于构建多线程程序中的数据流。例如,一个线程可以读取数据并将其写入管道,而另一个线程可以从管道中读取数据并进行处理。 "谭炼"这个名字...

Global site tag (gtag.js) - Google Analytics