`
java-mans
  • 浏览: 11340273 次
文章分类
社区版块
存档分类
最新评论

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(OutputStreamout,Stringcomments)

store(writerout,Stringcomments)

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接口 给用户自己提供序列号接口

分享到:
评论

相关推荐

    Java基础知识点.html

    类加载器 ClassLoader 反射 Stream 流 函数式编程 Lambda 表达式 网络编程-协议 网络编程-端口 网络编程-IP 多线程 IO流-字节流 IO流-字符流 IO流-转换流 File Map HashMap 序列化和反序列化 可变参数 类型通配符 ...

    java常用类解析及示例及一些工具类源代码

    主要讲解了System类、Object类、Arrays类、Cloneable接口、IO系统输入输出类及装饰类、IO系统文本读写工具类、IO系统二进制读写工具类、对象序列化工具类、File类及文件搜索工具类、java异常机制及自定义异常类、...

    Java基础知识点总结.docx

    对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 Java 8新特性 347 Java 性能优化 362

    JAVA基础课程讲义

    JAVA对象的序列化和反序列化 161 为什么需要序列化和反序列化 161 对象的序列化主要有两种用途 161 序列化涉及的类和接口 162 序列化/反序列化的步骤和实例 162 综合的序列化和反序列化练习 163 JAVA.IO包相关流对象...

    Java开发详解.zip

    031217_【第12章:JAVA IO】_对象序列化笔记.pdf 031218_〖第12章:JAVA IO〗_实例操作—单人信息管理程序笔记.pdf 031219_〖第12章:JAVA IO〗_实例操作:投票程序笔记.pdf 031301_【第13章:Java类集】_认识类集、...

    java基础案例与开发详解案例源码全

    13.1 java.io.File类328 13.1.1 文件和目录是什么?328 13.1.2 Java对文件和目录的操作328 13.2 JavaIO原理332 13.3 流类结构333 13.3.1 InputStream和OutputStream333 13.3.2 Reader和Writer334 13.4 文件流336 ...

    疯狂JAVA讲义

    学生提问:为什么有栈内存和堆内存之分? 93 4.6.2 基本类型数组的初始化 95 4.6.3 引用类型数组的初始化 96 4.6.4 没有多维数组 99 学生提问:我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样...

    java进阶13天资料.zip

    day10-字符流, 缓冲流、转换流、序列化流,打印流,属性集 day11-Socket网络编程、NIO day12-JUnit单元测试、反射、注解、动态代理 day13-XML和Dom4j,装饰模式,工厂模式,commons-io工具包,Base64

    java 编程入门思考

    1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 ...

    Java初学者入门教学

    1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 ...

    java联想(中文)

    1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 ...

    JAVA_Thinking in Java

    1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 ...

    Thinking in Java简体中文(全)

    1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 ...

    Thinking in Java 中文第四版+习题答案

    1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 ...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 ...

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    JDK_API_1_6

    Serializable 类通过实现 java.io.Serializable 接口以启用其序列化功能。 类摘要 BufferedInputStream BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。 ...

    Think in Java(中文版)chm格式

    1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 ...

    JDK_1_6 API

    java.io 通过数据流、序列化和文件系统提供系统输入和输出。 java.lang 提供利用 Java 编程语言进行程序设计的基础类。 java.lang.annotation 为 Java 编程语言注释设施提供库支持。 java.lang.instrument 提供允许...

Global site tag (gtag.js) - Google Analytics