outputStream 这个抽象类是表示字节输出流的所有类的超类
常用函数:
close() 关闭此输出流并释放与此流相关联的任何系统资源。
flush() 刷新此输出流并强制任何缓冲的输出字节被写出。
write(byte[] b) 将 b.length字节从指定的字节数组写入此输出流。
子类:
1.FileOutputStream
构造函数: FileOutputStream(File file) 创建文件输出流以写入由指定的 File对象表示的文件。 将自动创建文件。
2:ByteArrayOutputStream: 该类实现了将数据写入字节数组的输出流
构造函数:ByteArrayOutputStream()
独有方法:
1.toByteArray() 创建一个新分配的字节数组。
2.toString() 使用平台的默认字符集将缓冲区内容转换为字符串解码字节。
3.writeTo(OutputStream out) 将此字节数组输出流的完整内容写入指定的输出流参数
3.PipedOutputStream管道流
构造函数:PipedOutputStream(PipedInputStream snk)
独有方法:connect(PipedInputStream snk)
4.ObjectOutputStream 序列化对象
构造函数:ObjectOutputStream(OutputStream out)
ObjectOutputStream()
独有方法:writeObject(Object obj) 将指定的对象写入ObjectOutputStream。
writeUTF(String str) 此字符串的原始数据写入格式为 modified UTF-8 。
5.FilterOutputStream
构造函数:FilterOutputStream(OutputStream out) 创建一个基于指定底层输出流的输出流过滤器。
子类:
6.DataOutputStream:数据输出流
构造函数:DataOutputStream(OutputStream out)
独有方法:writeUTF(String str) 使用 modified UTF-8编码以机器无关的方式将字符串写入基础输出流。
7.PrintStream打印流
构造函数:
PrintStream(OutputStream out)
PrintStream(File file)
独有方法:
append(CharSequence csq) 将指定的字符序列附加到此输出流。
print(String s) 打印字符串。
8.BufferedOutputStream:该类实现缓冲输出流。
构造函数:BufferedOutputStream(OutputStream out)
//FileOutputStream使用实例
public void FileOutputStreamTest(String path,byte[] data)
{
FileOutputStream fileOutputStream=null;
try {
//自动创建一个新的文件
fileOutputStream=new FileOutputStream(path);
fileOutputStream.write(data);//outputStream会自动刷新数据不用调用flash函数
} catch (IOException e) {
}finally {
if(fileOutputStream!=null){
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//BufferedOutputStream 使用使用实例
public void FileOutputStreamTest2(String path,byte[] data){
BufferedOutputStream bufferedOutputStream= null;
try {
bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(path));
bufferedOutputStream.write(data);
bufferedOutputStream.flush();
} catch (IOException e) {
}finally {
if(bufferedOutputStream!=null){
try {
bufferedOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
序列化对象:
注意事项: 1.实体对象必须实现Serializable接口
2.static final long serialVersionUID ;标识持久化对象的id值
3.持久化对象只能持久化非static变量。
4.transient 可以标识变量不被序列化
//序列化
public void objectOutputStreamTest(String path) throws IOException {
ObjectOutputStream objectOutputStream=new ObjectOutputStream(new FileOutputStream(path));
objectOutputStream.writeObject(new UHFInfo("AA","BB","CC"));
objectOutputStream.flush();
objectOutputStream.close();
}
public class UHFInfo implements Serializable {
private String epc;
private String tid;
private String user;
public UHFInfo(String epc,String tid,String user){
this.epc=epc;
this.tid=tid;
this.user=user;
}
public String getEpc() {
return epc;
}
public void setEpc(String epc) {
this.epc = epc;
}
public String getTid() {
return tid;
}
public void setTid(String tid) {
this.tid = tid;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
}