一、properties类 是Hashtable的子类 map集合中的方法他都可以使用 它的泛型是固定的 键和值都是String类型的
方法
load() 读取
store() 写入
将集合中的内容存入文件
1、明确目的地
2、创建Properties集合
3、添加数据
4、把集合中的数据存储到流所对应的文件中
5、关闭
读取文件中的数据
1、明确数据源
2、创建集合
3、导入数据
4、关闭
二、序列化流与反序列化流
序列化流ObjectOutputStream
反序列化流ObjectInputStream
当一个对象要能被序列化,这个对象所属的类必须实现Serializable接口。否则会发生异常NotSerializableException异常。
瞬态关键字transient
当一个类的对象需要被序列化时,某些属性不需要被序列化,这时不需要序列化的属性可以使用关键字transient修饰。只要被transient修饰了,序列化时这个属性就不会序列化了。
三、打印流
字节打印流 PrintStream
字符打印流 PrintWriter
方法:
void print(String str): 输出任意类型的数据,
void println(String str): 输出任意类型的数据,自动写入换行操作
开启文件自动刷新写入功能
public PrintWriter(OutputStream out, boolean autoFlush)
public PrintWriter(Writer out, boolean autoFlush)
四、commons工具类
方法
readFileToString(File file):读取文件内容,并返回一个String;
writeStringToFile(File file,String content):将内容content写入到file中;
copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制
copyFile(File srcFile,File destFile);文件复制
public class CommonsIODemo01 {
public static void main(String[] args) throws IOException {
//method1("D:\\test.avi", "D:\\copy.avi");
//通过Commons-IO完成了文件复制的功能
FileUtils.copyFile(new File("D:\\test.avi"), new File("D:\\copy.avi"));
}
//文件的复制
private static void method1(String src, String dest) throws IOException {
//1,指定数据源
BufferedInputStream in = new BufferedInputStream(new FileInputStream(src));
//2,指定目的地
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(dest));
//3,读
byte[] buffer = new byte[1024];
int len = -1;
while ( (len = in.read(buffer)) != -1) {
//4,写
out.write(buffer, 0, len);
}