...查文档吧,都那样
特别的是,他关于IO的操作都要try catch... 惊了
.flush();可以把内存中没堆满的直接写入,一般跟在.write()方法后面


不过,关于copy的实现方法,提供几个比较高效的

· Java7的Files类

Files.copy(source.toPath(), dest.toPath());  

· FileChannel FileUtils

FileUtils.copyFile(source, dest);  

Q:什么是序列化?
A:四将对象转换为字节序列的过程, 文本、图片、音频、视频等都是通过二进制序列进行传输的。


Q:那怎么实现呢?
A: ObjectOutputStream & ObjectInputStream
ObjectOutputStream 类中:通过使用writeObject(Object object) 方法,将对象以二进制格式进行写入。
ObjectInputStream 类中:通过使用readObject()方法,从输入流中读取二进制流,转换成对象。

File file = new File("D:/test.txt");       
Student student = new Student("孙悟空","12");        
ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(file));           
outputStream.writeObject(student);      
//
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(file));
Student s = (Student) objectInputStream.readObject();         System.out.println(s.toString());

第二种
Seriable: 目标对象需要先实现 Seriable接口(没有任何方法)。
通过在序列化对象中实现writeObject()和readObject()方法,传入ObjectOutputStream和ObjectInputStream对象,完成序列化。

OutputStream outputStream = new FileOutputStream("output.txt")
ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
objectOutputStream.writeObject(student);
//
InputStream inputStream= new FileInputStream("output.txt")
ObjectInputStream objectInputStream= new ObjectInputStream(inputStream);
objectInputStream.readObject();

不要忘了所有对象的.close()

转换流


transient 关键字,主要用来忽略我们不希望进行序列化的变量。