文件:文件是数据源(保存数据的地方)的一种。
文件在程序中是以流的形式来操作的
内存(程序)到文件是输出流,文件到内存(程序)是输入流。
字节流:可用于读写的二进制文件及任何类型文件。
字符流:可以用于读写文本文件,不能操作二进制文件。
字节流:
OutPutStream:输出流
InPutStream:输入流
字符流:
reader:输入流
writer:输出流
抒写步骤:
1、判断输入还是输出。
2、判断字节还是字符。
3、通过子类实例化父类对象。
3、进行读写操作。
4、关闭输入输出流。
需要牢记的代码:
try{
FileInPutStream fips = new FileInPutStream("文件路径");
FileOutPutStream fops = new FileOutPutStream("文件路径");
Byte[] bt = new Byte[];
int length = 0;
while((length=fips.read(bt))!=-1){
fops.write(bt);
fops.flush();
}
}
catch (FileNotFoundException f) {
f.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
if (fips != null) {
try {
fips.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (fops != null) {
try {
fops.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
对象序列化与反序列化
分布式应用的基础:对象序列化:将内存中的对象以二进制流的形式输出。
对象反序列化:将输入的二进制流转化为内存中的对象(第二种产生对象的方式)。
serializable:标识接口,对象序列化之前必须实现标识接口。
标识接口:允许实现它的类,进行某项操作,一般不含抽象方法。
关键字transient:它修饰的属性,其值不参与序列化。