...查文档吧,都那样
特别的是,他关于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 关键字,主要用来忽略我们不希望进行序列化的变量。