基本的流类
- FileInputStream和FileOutputStream;(file 1)
- 节点流,用于从文件中读取或往文件中写入字节流。如果在gouzao
- BufferedInputStream和BufferedOutputStream;(file 2)
- 过滤流,需要使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率;
- DataInputStream和DataOutputStream;
- 过滤流,需要使用已经存在的节点流来构造,提供了读写Java中的基本数据类型的功能;
- PipedInputStream和PipedOutputStream;(file 4)
- 管道流,用于线程间的通信。一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。要使管道流有用,必须同时构造管道输入流和管道输出流;
## file 1 ##
import java.io.*;
class StreamTest{
public static void main(String[] arg) throws Exception{
FileOutputStream fps = new FileOutputStream("1.text");
fps.write("http://www.baidu.com".getBytes());
fps.close();
FileInputStream fis = new FileInputStream("1.text");
byte[] b = new byte[100];
int len = fis.read(b);
System.out.println(new String(b,0,len));
fis.close();
}
}
## file 2 ##
import java.io.*;
class StreamTest{
public static void main(String[] arg) throws Exception{
FileOutputStream fps = new FileOutputStream("1.text");
BufferedOutputStream bos = new BufferedOutputStream(fps);
bos.write("http://www.baidu.com".getBytes());
bos.flush();
FileInputStream fis = new FileInputStream("1.text");
BufferedInputStream bis = new BufferedInputStream(fis);
byte[] b = new byte[100];
int len = fis.read(b);
System.out.println(new String(b,0,len));
bis.close();
}
}
## file 4 ##
import java.io.*;
class PipedInputText{
public static void main(String[] args){
PipedOutputStream pos = new PipedOutputStream();
PipedInputStream pis = new PipedInputStream();
try{
pis.connect(pos);
new Product(pos).start();
new Customer(pis).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!welcome you".getBytes());
pos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
class Customer extends Thread{
private PipedInputStream pis;
Customer(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();
}
}
}