字节流:
InputStrean 字节输入流 从文件到程序
OutputStream 字节输出流 从程序到文件。
由于输入流、输出流内容较多,本文只介绍常用的文件输入流、文件输出流和序列化对象、反序列化对象。
关于流的总体框架推荐如下文章
http://www.cnblogs.com/biehongli/p/6074713.html
BufferedInputStrean和BufferedOutputStream为InputStrean和OutputStream增加了内存缓冲区,根本目的是允许Java的IO流一次操作多个字节,从而提高系统的性能。缓冲流通常以其他输入流作为她的输入源,经过滤或处理后以新的输入流的形式提供给用户。
InputStrean in=new FileInputStream(new File(“地址”));//FileInputStream是InputStrean的子类,主要用于从文件读取数据;
BufferedInputStream(InputStrean in) //按照32个字节缓冲区的缓冲流
BufferedInputStream(InputStrean in,int size)//指定大小的缓冲流
BufferedOutputStream(OutputStream in) //按照32个字节缓冲区的缓冲流
BufferedOutputStream(OutputStream in,int size)//指定大小的缓冲流
对象序列化:对象转换成字节输出到指定文件
File f=new File(“d:stuInfo.txt”);
OutputStream outStream=new FileOutputStream(f);
ObjectOutputStream os=new ObjectOutputStream(outStream);
os.writeObject(new Student(“tom”,20));
outStream.close();
os.close();
对象序列化转为byte[]
ByteArrayOutputStream outStream=new ByteArrayOutputStream(512);
ObjectOutputStream out=new ObjectOutputStream(outStream);
out.writeObject((Serializable)new Student(“tom”,20));
byte[] obj=outStream.toByteArray();
对象反序列化:自己转换成对象
File f=new File(“d:stuInfo.txt”);
InputStream inStream=new FileInputStream(f);
ObjectInputStream os=new ObjectInputStream(in);
Object object=in.readObject();
Student stu=(Student)object;
System.out.print(“姓名”+stu.getName());
System.out.print(“姓名”+stu.getAgee());
inStream.close();
in.close();
byte[] obj转化反序列化为对象
ByteArrayInputStream inputStream=new ByteArrayInputStream (obj);
ObjectInputStream in=new ObjectInputStream (inputStream);
Object obj=in.readObject();
InputStreamReader 和OutputStreamWriter 分别是Reader和Writer的子类,二者用于字节流和字符流之间的转换。
InputStreamReader用于将输入的字节流转变为字符流
OutputStreamWriter 用于将输入的字符流转变为字节流
InputStreamReader(InputStream in)
InputStreamReader(InputStream in,String charsetName
OutputStreamWriter ((OutputStream out))
OutputStreamWriter (OutputStream out,String charsetName)