java基础之IO File类和序列化Object

File类

       用来将文件或者文件夹封装成对象

       方便对文件与文件夹的属性信息进行操作

流只能操作数据,不能操作目录

静态属性File.separator  名称分隔符

文件创建步骤

1 封装成文件   new File()

2 创建           file.createNewFile();

File类常见方法:

       文件创建

boolean createNewFile() 在指定位置创建文件,如果文件存在,则不创建,返回false

                   输出流创建文件,如果文件存在,会覆盖原有文件

                     boolean   mkdir() 创建一级目录

                     boolean mkdirs()  创建多级目录

                     对一个文件是否是文件或者目录时,要先判断该文件对象封装的内容是否存在

删除

              boolean  delete() 删除失败返回false

              void  deleteOnExit();

判断

              boolean  exists() 文件是否存在

              isFile()

              isDirictory()

调用文件的list()方法时 File对象必须是封装了一个目录,该目录还必须存在。

如果是具体的文件调用list()方法会抛空指针异常。

File f = new File(“c:\\abc”);

String[] names = f.list();

循环打印目录使用递归

递归要注意

1.       限定条件

2.       要注意递归的次数,尽量避免内存溢出

删除文件

       带内容的目录,从里往外删除

       递归调用先删除文件,在删除文件夹

       *java 删除文件不到回收站

Properties是hashtable的子类,具备map集合的特点,存储的键值对都是字符串,是集合中和IO技术结合的集合容器。

特点:可以用于键值对形式的配置文件

获取键 getPropertyNames()

获取值 getProperty(String key);

设置值 setProperty(String key , String value);

获取所以属性

JDK1.5         propertyNames()

JDK1.6         stringPropertyNames()

Properties 可以加载流中的文件 TXT

从流中读取文件内容

1.       字节流

2.       字符流

   FileReader fs = new FileReader(“1.txt”);    

Properties pp = new Properties();

pp.load(fs);

修改硬盘中的文件

setProperty(String key , String value);

保存

store(OutputStream out,String comments)

store(writer out,String comments)

comments注释文字

Print

    PrintStream

构造方法参数类型

1.file对象 File  2.字符串路径 String 3.字节输出流

PrintWriter

构造方法参数类型

1.    file对象 File  2.字符串路径 String 3.字节输出流 outputstream 4.字符输出流 writer

序列流

SequenceInputStream类

对多个流进行合并

文件的切割,合并 

Object 流

ObjectInputStream 与ObjectOutputStream

关键 Serializable 接口 由JDK控制序列化

       class T implements Serializable

{

       int i=10;

       int j=9;

       double d=23;

       int k = 15;

}

FileOutputStream fos = new FileOutputStream(“d:/java/io/testObject.dat”);

ObjectOutputSteam oos = new ObjectOutputStream(fos);

T t = new T();

t.k=8;

oos.writeObject(t);        //向文件中写入对象

FileInputStream fis = FileInputStream(“d:/java/io/testObject.dat”);

ObjectInputStream ois = new ObjectInputStream(fis);

T tRead = (T)ois.readObject();  //读取对象

System.out.println(tRead);

关键字 transient 修饰的成员变量,在序列化时不与考虑,即不被写入硬盘中

 

关键字  externalizable接口 给用户自己提供序列号接口

posted @ 2012-11-08 13:47  漫步云计算  阅读(281)  评论(0编辑  收藏  举报