Buffer and Object input and out put

The use of BufferedInputStream/BufferedOutputStream.
If we copy a file.
1.input the file
2.OS RAM
3.JVM RAM
4.code
5.JVM RAM
6.OS RAM
7.ouput the file
So many procedures,it's why that the copy a file cost so much time.
If we use the buffer the files will fisrt store in the JVM RAM.Then send to the code at one time.
It just like a car send one package at one time.With buffer,you can use the car send many package at one time.So efficent it is.
public static void writeContent(String path) throws IOException{
//实例化一个输出流对象
FileOutputStream fos = new FileOutputStream(path,ture);
BufferedOutputStream bos = new BufferedOutputStream(fos);
String [] array = {"a","b","c","d","e","f"};
//系统会自己给你一个默认的大小缓冲空间,
for(int i=0;i<array.length;i++){
bos.write(array[i].charAt(0)); //把字符串改成字符
}
System.out.println("文件写入成功!");
bos.flush();
bos.close();
fos.close();
}


//只能将支持 java.io.Serializable 接口的对象写入流中。每个 serializable 对象的类都被编码,编码内容包括类名和类签名、对象的字段值和数组值,以及从初始对象中引用的其他所有对象的闭包。

The serialization of the object
If we want to I/O a object.We should let the
class interface serializable .
The java.io.ObjectInputStream class's void writeOject(Object obj) method to input a object.The same as Output.
Under some special condition,If you want to keep the class's attributes as secrets.Just add the key word transient(短暂的).The system won't store the attribute when input.
private static void writeObject(String string) throws IOException, ClassNotFoundException {
student st=new student("张三",5);

//实例化一个输出流对象
FileOutputStream fos = new FileOutputStream("src/xy_进阶的IO流0909/student.txt");
//实例化一个对象流对象
ObjectOutputStream oos=new ObjectOutputStream(fos);
//写入对象
oos.writeObject(st);
//强制写入对象流
oos.flush();
//关闭对象流
oos.close();

//实例化一个输入流对象
FileInputStream fis = new FileInputStream("src/xy_进阶的IO流0909/student.txt");
//实例化一个对象流对象
ObjectInputStream ois=new ObjectInputStream(fis);
//需要强制转型
student st1=(student)ois.readObject();
System.out.println(st1.getName());

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值