`

Buffer and Object input and out put

    博客分类:
  • IO
阅读更多
  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());
				
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics