java线程通信的乱码问题

来源:百度知道 编辑:UC知道 时间:2024/09/25 17:20:35
这段是抄自网上的代码,但在读取Pipe的那一端总是乱码,无论写入的是byte、char、int、还是String。但如果写入的是Usigned int则没有问题。这是怎么回事?
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.util.Random;

public class CommunicateWhitPiping {
public static void main(String[] args) {
/**
* 创建管道输出流
*/
PipedOutputStream pos = new PipedOutputStream();
/**
* 创建管道输入流
*/
PipedInputStream pis = new PipedInputStream(4);
try {
/**
* 将管道输入流与输出流连接 此过程也可通过重载的构造函数来实现
*/
pos.connect(pis);
} catch (IOException e) {
e.printStackTrace();
}
/**
* 创建生产者线程
*/
Producer p = new Producer(pos);
/**
* 创建消费者线程
*/
Consumer c = new Consumer(pis);
/**
* 启动线程
*/
p.start();
c.start();
}
}

/**
* 生产者线程(与一个管道输入流相关联)
*
*/

b是个数组,你直接输出来当然是乱码了,
你要输出的是b的内容而不是b

你用的什么 IDE ,我怎么也没报错,这里根本没有INIT方法

这只是个例子,不是可执行的多线程代码