java-I/O File类(4)-DataInputStream和DataOutputStream/PipedInputStream和PipedOutputStream
来源:互联网 发布:做数据分析要掌握什么 编辑:程序博客网 时间:2024/06/05 09:34
DataInputStream和DataOutputStream
过滤流,需要使用已经存在的节点流来构造,提供了读写Java中的基本数据类型的功能。
构造函数
DataOutputStream(OutputStream out)
Constructs a new DataOutputStream on the OutputStream out.
示例:
class StreamTest { public static void main(String[] args) throws Exception{ //对文件的写入和对文件的读取 FileOutputStream fos = new FileOutputStream("1.txt"); //因为BufferedOutputStream构造函数要求是OutputStream对象,而FileOutputStream是OutputStream派生类 BufferedOutputStream bos = new BufferedOutputStream(fos); //提供了读写Java中的基本数据类型的功能。 DataOutputStream dos = new DataOutputStream(bos); //利用String对象的getBytes()获得字符数组 dos.writeByte(23); dos.writeInt(88); dos.writeBoolean(true); dos.writeFloat(123f); dos.writeChar('x'); dos.flush(); //bos.close(); FileInputStream fis = new FileInputStream("1.txt"); BufferedInputStream bis = new BufferedInputStream(fis); DataInputStream dis = new DataInputStream(bis); System.out.println(dis.readByte()); System.out.println(dis.readInt()); System.out.println(dis.readBoolean()); System.out.println(dis.readFloat()); System.out.println(dis.readChar()); bis.close(); }}
结果:
2388true123.0x
PipedInputStream和PipedOutputStream
管道流,用于线程间的通信。一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。要使管道流有用,必须同时构造管道输入流和管道输出流。
class pipedTest { public static void main(String[] args){ PipedOutputStream pos = new PipedOutputStream(); PipedInputStream pis = new PipedInputStream(); try{ //谁connect谁都行 pos.connect(pis); Product p = new Product(pos); Consumer c = new Consumer(pis); p.start(); c.start(); }catch(Exception e){ e.printStackTrace(); } }}//往管道中写入数据class Product extends Thread{ private PipedOutputStream pos; Product(PipedOutputStream pos){ this.pos = pos; } public void run(){ try{ pos.write("hello pipedTest".getBytes()); pos.close(); }catch(Exception e){ e.printStackTrace(); } }}//从管道中读取到数据class Consumer extends Thread{ private PipedInputStream pis; Consumer(PipedInputStream pis){ this.pis = pis; } public void run(){ try{ byte[] b = new byte[100]; int len = pis.read(b); System.out.println(new String(b,0,len)); pis.close(); }catch(Exception e){ e.printStackTrace(); } }}
结果:
hello pipedTest
0 0
- java-I/O File类(4)-DataInputStream和DataOutputStream/PipedInputStream和PipedOutputStream
- Java 7之传统I/O - PipedInputStream和PipedOutputStream
- java基本I/O系列--PipedOutputStream和PipedInputStream
- Java-PipedOutputStream和PipedInputStream类
- I/O(六)DataInputStream和DataOutputStream
- Java I/O流-PipedInputStream、PipedOutputStream
- Java DataInputStream 和 DataOutputStream
- java中PipedOutputStream和PipedInputStream类用法
- java中PipedOutputStream和PipedInputStream类用法
- 【Java-IO】PipedInputStream和PipedOutputStream
- DataInputStream和DataOutputStream类
- DataInputStream和DataOutputStream类
- DataInputStream和DataOutputStream类
- PipedOutputStream类 和PipedInputStream 类
- Java I/O流-DataInputStream、DataOutputStream
- JAVA IO系列---DataInputStream和DataOutputstream类
- java之DataInputStream和DataOutputStream
- java 数据流DataOutputStream和DataInputstream
- Android开发之使用Notification.Builder
- 南阳168 房间安排
- Android 利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果
- HTTP深入浅出 http请求
- C++静态库与动态库
- java-I/O File类(4)-DataInputStream和DataOutputStream/PipedInputStream和PipedOutputStream
- 第九周 项目4 我的向量类
- 我之所以选择Rust
- 面向对象入门的概念与时钟的走动
- 软件架构模式的种类
- UVA - 10870(构造矩阵)
- 存储器简介(RAM/ROM/FLASH/NVRAM)
- linux基本命令备忘
- HEVC/H.265 Bistream Analysis Tools