package io;
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
/***
* 管道流:
* 作用:两个线程间的通信
* 在PipedOutputStream类上具有下面方法:
* public void connect(PipedInputStream snk);
* 线程启动后,后自动进行管道的输入、输出操作;
* @author huawei
*
*/
public class PipedIO {
public static void main(String[] args) {
Send s = new Send();
Receive r = new Receive();
try{
s.getPos().connect(r.getPis());//连接管道
}catch(IOException e){
e.printStackTrace();
}
new Thread(s).start();
new Thread(r).start();
}
}
/*线程:写入数据*/
class Send implements Runnable{
private PipedOutputStream pos = null;
public Send(){
this.pos = new PipedOutputStream();
}
@Override
public void run() {
String str = "HELLO WORLD";
try{
this.pos.write(str.getBytes());
}catch(IOException e){
e.printStackTrace();
}
try{
this.pos.close();
}catch(IOException e){
e.printStackTrace();
}
}
public PipedOutputStream getPos(){
return this.pos;
}
}
/*线程:读出数据*/
class Receive implements Runnable{
private PipedInputStream pis = null;
public Receive() {
this.pis = new PipedInputStream();
}
@Override
public void run() {
byte[] b = new byte[1024];
int len = 0;
try{
len = this.pis.read(b);//接收数据
}catch(IOException e){
e.printStackTrace();
}
try{
this.pis.close();
}catch(IOException e){
e.printStackTrace();
}
System.out.println("接收的内容为: " + new String(b,0,len));
}
public PipedInputStream getPis(){
return pis;
}
}
相关推荐
在这个“java io流的实践案例大全”中,你将找到一系列全面且深入的示例,帮助你理解和掌握Java IO流的使用。 IO流在Java中分为四类:字节流(Byte Stream)、字符流(Character Stream)、对象流(Object Stream)...
在Java中,IO流操作是用于处理输入与输出的抽象机制,它提供了在不同的数据源和目标之间传输数据的手段。流的概念最早起源于UNIX系统中的管道概念,是一个连续的数据流,可以理解为水流,从源端流向目的端。 一、流...
### Java IO 流详解 #### 一、Java IO 流概念及...通过对流的分类以及案例的学习,我们可以更好地理解和应用Java IO流的各种功能。无论是简单的文件读写还是复杂的网络通信,Java IO流都能提供灵活且高效的解决方案。
本案例将深入探讨Java IO流的基本概念、主要类库及其在实际编程中的应用。 在Java中,IO流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理单个字节的数据,而字符流处理Unicode字符。...
在这个"javaIO案例"中,我们关注的是如何使用核心的Java IO类,如`InputStream`、`OutputStream`、`FileInputStream`、`FileOutputStream`以及`PipedInputStream`和`PipedOutputStream`等管道流。这些类构成了Java ...
4. 使用`getInputStream()`和`getOutputStream()`方法通过IO流对象向服务器发送数据。 5. 通信结束后,关闭所有打开的IO对象和Socket。 **服务器:** 1. 通过指定端口实例化`ServerSocket`对象。 2. 调用`accept()...
以上只是Java IO流的一部分核心概念和常用API,实际上Java IO库还包括更复杂的数据压缩、管道流、套接字通信等多个方面的内容。理解并熟练运用这些知识对于进行高效的文件操作和网络通信至关重要。
1. **管道(Pipes)**:Java中的`java.io.PipedInputStream`和`java.io.PipedOutputStream`可以创建一个管道,允许两个线程之间进行数据传输。管道常用于父进程和子进程之间的简单通信,例如将子进程的输出作为父...
6)讲解数据流的基本用法,特别是DataInputStream和DataOutputStream的使用案例;7)说明RandomAccessFile类的使用技巧,并给出了具体的读写示例;8)简述Java中标准输入输出流(如System类的输入输出流)的操作方法...
"JavaIO-master"这个压缩包可能包含了作者的学习笔记、代码片段和一些练习案例,是学习Java IO的一个宝贵资源。 总之,Java IO是Java开发者必备的技能之一,它不仅涉及文件操作,还涵盖了网络通信、进程间通信等多...
031206_【第12章:JAVA IO】_管道流笔记.pdf 031207_【第12章:JAVA IO】_打印流笔记.pdf 031208_【第12章:JAVA IO】_System类对IO的支持笔记.pdf 031209_【第12章:JAVA IO】_BufferedReader笔记.pdf 031210_〖第...
案例可能涵盖文件读写、对象序列化、管道流以及过滤流的使用。 5. **多线程**:Java提供内置的线程支持,允许并发执行任务。案例会涉及到线程的创建、同步、通信以及死锁的预防。 6. **网络编程**:Java的Socket...
首先,通过`mvn`命令,我们可以看到这里使用了Maven,一个Java项目管理工具,它能够编译、打包、测试以及部署项目。在本项目中,`mvn`被用于生成文档,执行后,所有内容将会被输出到`target/Generated-docs`目录下。...
"stalker-thread.github.io"似乎是一个关于线程编程的学习资源库,可能包含了各种线程相关的概念、技术和实践案例。在这个项目中,我们可以期待找到关于线程管理、同步和通信等方面的知识。 线程的创建与管理是编程...
在博客中,李雪敏可能会分享如何使用Flink构建实时数据管道,处理流数据,以及如何利用Flink的容错机制确保数据的一致性。 Redisson是一个基于Redis的Java客户端,提供了丰富的分布式服务功能,如分布式锁、队列、...
1. **IO流**:Java的IO体系是基于流的,分为字节流和字符流。字节流处理二进制数据,包括InputStream和OutputStream家族;字符流处理文本数据,包括Reader和Writer家族。它们都有输入和输出之分,如FileInputStream...
2. **标准I/O库**:详细讲解了java.io包中的类和接口,如File类用于文件的创建、读写和删除,InputStream和OutputStream是所有字节流的基类,Reader和Writer则是字符流的基类。此外,还有ObjectInputStream和...
在Java中,我们可以利用标准输入输出流(System.in和System.out)以及IO库来实现这个模式。首先,程序会从键盘读取用户输入的单词,这可以通过`BufferedReader`类和`System.in`实现。接着,我们创建一个过滤器,例如...
理解流的方向(输入/输出)、连接(管道流)和转换(缓冲流)是掌握Java IO的关键。 5. **反射机制**:Java的反射机制允许程序在运行时动态地获取类的信息(如类名、方法名)并操作类的对象。这在创建通用代码、元...
Java NIO(New IO)是Java 1.4版本引入的一个新API,全称为Non-blocking Input/Output,它提供了一种不同于传统IO的编程模型,传统IO基于块I/O,而NIO则基于通道(Channel)和缓冲区(Buffer)进行数据传输。...