day19 IO编程

时间:2024-06-26 12:34:50

文件:文件是数据源(保存数据的地方)的一种。

文件在程序中是以流的形式来操作的

内存(程序)到文件是输出流,文件到内存(程序)是输入流。

字节流:可用于读写的二进制文件及任何类型文件。

字符流:可以用于读写文本文件,不能操作二进制文件。

字节流:

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:它修饰的属性,其值不参与序列化。