一.文件操作
文件操作是指对计算机中的文件进行读写、创建、删除等操作。在Java中,我们可以使用java.io包来实现文件操作。
1.打开文件
在Java中,我们使用FileReader
、FileWriter
、BufferedReader
和BufferedWriter
等类来操作文件。例如,要打开一个文件进行读取,我们可以这样做
import java.io.*;
BufferedReader a = new BufferedReader(new FileReader("a.txt"));
2.读取文件
使用BufferedReader
的readLine()
方法读取文件内容。
String a;
while ((a = reader.readLine()) != null) {
System.out.println(a);
}
3.写入文件
使用BufferedWriter
的write()
方法写入文件。
import java.io.*;
BufferedWriter writer = new BufferedWriter(new FileWriter("a.txt", true));
writer.write("Hello World!");
4.关闭文件
a.close();
writer.close();
二.序列化
序列化是指将内存中的对象转换成字节流,以便在网络上传输或存储到文件。反序列化是将字节流转换回对象。在Java中,我们可以使用java.io.Serializable
接口和ObjectInputStream
、ObjectOutputStream
类来实现序列化和反序列化。
1.序列化
首先,需要让要序列化的类实现Serializable
接口。然后,使用ObjectOutputStream
将对象序列化并保存到文件。
import java.io.*;
class Student implements Serializable {
String name;
int age;
Data(String name, int age) {
this.name = name;
this.age = age;
}
}
Data data = new Data("name", "age");
try (FileOutputStream fos = new FileOutputStream("data.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos)) {
oos.writeObject(data);
}
2.反序列化
使用ObjectInputStream
从文件中读取字节流并将其反序列化为对象。
import java.io.*;
try (FileInputStream fis = new FileInputStream("data.ser");
ObjectInputStream ois = new ObjectInputStream(fis)) {
Data loadedData = (Data) ois.readObject();
System.out.println("name: " + loadedData.name + ", age: " + loadedData.age);
}