解决方案 »
- scrollview 滑动置顶 问题
- 求助访问网络数据问题
- 高分求助,android调用讯飞语音tts引擎写文件失败
- 开发android程序用一个activity还是多个activity?
- 怎么样让应用程序全屏显示啊?
- 关于屏幕显示的问题,求教
- find: `src': No such file or directory build/core/java.mk:9: *** packages/apps:
- 为什么MediaPlayer pause();后会将之前新建的线程重新new一个?
- ExpandableListView的下拉收起图标无法对齐
- onTouch事件错误
- 代码量达到10万行的软件?
- android谷歌地图问题
package com.test;import java.io.IOException;
import java.io.InputStream;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;public class MyTest { /**
* @param args
*/
static void read(final InputStream inputStream, final byte[] b) {
int readByte = 1;
// Read data with timeout
ExecutorService executor = Executors.newFixedThreadPool(2);
Callable<Integer> readTask = new Callable<Integer>() {
@Override
public Integer call() throws Exception {
return inputStream.read(b, 0, b.length);
}
};
Future<Integer> future = executor.submit(readTask);
try {
readByte = future.get(2000, TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TimeoutException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
future.cancel(true); System.out.println("End!!!");
executor.shutdown();
} public static void main(String[] args) {
// TODO Auto-generated method stub
final PipedOutputStream outputStream = new PipedOutputStream();
PipedInputStream inputStream = null;
try {
inputStream = new PipedInputStream(outputStream);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} Runnable writeTask = new Runnable() {
@Override
public void run() {
try {
String buf = "caonima"; Thread.sleep(2000);
outputStream.write(buf.getBytes());
buf = "hehe";
outputStream.write(buf.getBytes());
outputStream.write(3); Thread.sleep(5000);
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Write end!");
}
};
Thread thread = new Thread(writeTask);
thread.start();
byte[] b = new byte[100];
read(inputStream, b);
System.out.println("Result:" + new String(b));
}}还是自己解决了吧