File类与序列化

一、File类方法

1.与文件、目录名相关方法

String getName() 返回由此抽象路径名表示的文件或目录的名称。

String getPath() 将此抽象路径名转换为一个路径名字符串。

String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。

File getAbsoluteFile() 返回此抽象路径名的绝对路径名形式。

String getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。

boolean renameTo(File dest) 重新命名此抽象路径名表示的文件。

2.与目录访问相关方法

boolean mkdir() 创建此抽象路径名指定的目录。
boolean mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。

String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[] list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。

3.与文件、目录常规信息相关方法

long lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。
long length() 返回由此抽象路径名表示的文件的长度。

boolean delete() 删除此抽象路径名表示的文件或目录。

4.与文件、目录检测相关方法

boolean equals(Object obj) 测试此抽象路径名与给定对象是否相等。
boolean exists() 测试此抽象路径名表示的文件或目录是否存在。
boolean isAbsolute() 测试此抽象路径名是否为绝对路径名。
boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。
boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。
boolean isHidden() 测试此抽象路径名指定的文件是否是一个隐藏文件。

二、序列化

IO流:包装字节流就是个标准的序列化案例。

//序列化
        FileOutputStream fos = null;
        BufferedOutputStream bos = null;
        ObjectOutputStream oos = null;

        try {
            fos = new FileOutputStream(args[0]);
            bos = new BufferedOutputStream(fos);
            oos = new ObjectOutputStream(bos);

            Integer num = 1;
            oos.writeObject(num);

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(oos!=null){
                try {
                    oos.close();
                } catch (IOException e) {
                }
            }
        }   
        //反序列化
        FileInputStream fis = null;
        ObjectInputStream ois = null;

        try {
            fis = new FileInputStream(args[0]);
            ois = new ObjectInputStream(fis);

            Integer num= (Integer)ois.readObject();
            System.out.println(num);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(ois!=null){
                try {
                    ois.close();
                } catch (IOException e) {
                }
            }
        }        

定义规则:

1.当对象被序列化时,JVM只序列化其字段值,方法和构造器不参与序列化。

2.如果对象的某个字段引用了另一个对象,则被引用对象的字段也将被序列化。

3.有些对象类(如FileInputStream)是不可序列化的,因为字段值与操作系统相关的即时信息。

4.访问控制修饰符对序列化无影响。

5.静态变量不参与序列化,因为它不属于对象。

注意:当对象被反序列化时,静态变量的值被设为存储在相应类变量的值。

时间: 2024-10-11 16:35:25

File类与序列化的相关文章

黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或文件夹封装成对象 (2)方便于对“文件”与“文件夹属性信息”进行操作 (3)File对象,可以作为参数传递给流的构造函数 (二)构造方法 * 通过File的构造函数创建File对象 方式1:File f = new File("c:\\a.txt"); 方式2:File f2 = newF

初识序列化和反序列化,使用BinaryFormatter类、ISerializable接口、XmlSerializer类进行序列化和反序列化

序列化是将对象转换成字节流的过程,反序列化是把字节流转换成对象的过程.对象一旦被序列化,就可以把对象状态保存到硬盘的某个位置,甚至还可以通过网络发送给另外一台机器上运行的进程.本篇主要包括: ● 使用BinaryFormatter类进行序列化和反序列化● 使用ISerializable接口自定义序列化过程● 使用XmlSerializer类进行序列化和反序列化 □ 使用BinaryFormatter类进行序列化和反序列化 首先把需要序列化的类打上[Serializable]特性,如果某个字段不需

JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)

1.流的简述及演示案例输入流和输出流相对于内存设备而言.将外设中的数据读取到内存中:输入将内存的数写入到外设中:输出.字符流的由来:其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表.获取对应的文字.在对这个文字进行操作.简单说:字节流+编码表字节流的两个顶层父类:1,InputStream 2,OutputStream.字符流的两个顶层父类:1,Reader 2,Writer String filePath = "F:\\demo.txt"; FileWriter f

详谈JAVA中的file类与IO流

File类 位置于java.io包构造方法:File(String parent, String child)new file("d:\\","a.txt") File(String pathname) new file("d:\\a.txt") File(File parent, String child)File f = new File("d:\\");File f1=new File(f,"a.txt&quo

Java开发之File类

File类 File类是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹. File类保存文件或目录的各种元数据信息,包括文件名.文件长度.最后修改时间.是否可读.获取当前文件的路径名,判断指定文件是否存在.获得当前目录中的文件列表,创建.删除文件和目录等方法. [案例 ]创建一个文件 1 import java.io.*; 2 class hello{ 3 public static void main(String[] args) { 4 File f=new

C#中关于类的序列化

1.什么是序列化 序列化是将对象状态转换为可保持或传输的格式的过程,在序列化过程中,对象的公共字段和私有字段以及类的名称(包括包含该类的程序集)都被转换为字节流,然后写入数据流.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数据. 2.为什么使用序列化 一个原因是将对象的状态保持在存储媒体中,以便可以在以后重新创建精确的副本. 我们经常需要将对象的字段值保存到磁盘中,并在以后检索此数据.尽管不使用序列化也能完成这项工作,但这种方法通常很繁琐而且容易出错,并且

类对象序列化操作类

记录下类对象序列化的类以便以后用到 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Xml; using System.Xml.Serialization; namespace TTOCR.Common {

javaIO—File类详解

先列出APi,然后讲解File类的基本知识及实例. java.io 类 File java.lang.Object java.io.File 所有已实现的接口: Serializable, Comparable<File> public class File extends Object implements Serializable, Comparable<File> 文件和目录路径名的抽象表示形式. 用户界面和操作系统使用与系统相关的路径名字符串来命名文件和目录.此类呈现分层路

第二十六节(对象流,File类)

对象流可以将 Java 对象转换成二进制写入磁盘,这个过程通常叫做序列化,并且还可 以从磁盘读出完整的 Java 对象,而这个过程叫做反序列化. 对象流主要包括:ObjectInputStream 和 ObjectOutputStream 如何实现序列化和反序列化 如果实现序列化该类必须实现序列化接口 java.io. Serializable , 该接口没有任何方法, 该接口 只是一种标记接口,标记这个类是可以序列化的 /* 对象流: 对象流可以将java对象转换成二进制写入磁盘,这个过程叫做