java io理解
2016-03-11 14:33
399 查看
1. File类
返回true,则文件返回到列表中
File包含删除,创建文件等方法,File中包含目录和文件,用时候可查API
File.delete()可删除文件和空目录
2. 按结构分为:字节流:最底层是InputStream和OutputStream
字符流:最底层是Reader和Writer
读入流 输出流
节点流 过滤流: 过滤流用来包装节点流
最基本的输入流我们使用FileInputStream
3. 字节流的顶层是InputStream和OutputStream抽象类
字节流常用的有ByteArrayInputStream, BufferedInputStream,FileInputStream
装饰模式用FilterInputStream对节点流进行包装
4,。 字符流: 字符流的顶层是Writer和Reader抽象类
InputStreamReader :An InputStreamReader is a bridge from byte streams to character streams:
5. RandomAccessFile : 实现了DataOutputStream和DataInputStream,他的构造器可以使文件以只读或者读写的方式打开
随机访问文件,既可读取,又可写出(但是注意写入之后的位置位于末尾,如果要读取,要调用方法使他回到开头)
6. 序列化: 将对象转换为字节流保存起来,并在以后还原回来
反序列化:将对象在磁盘文件中返回回来的过程
一个对象若想实例化,他的类必须实现java.io.Serializable接口或者他的子接口,这个接口中没有任何方法,类似于Annotation接口,标示着这个类实现了这个接口,就可以被序列化
只能序列化对象的非静态成员变量,静态成员变量和方法不可被序列化。如果一个序列化对象的成员变量也是一个对象,这个对象的成员变量也会被序列化,如果一个成员变量不可序列化,则序列化失败,会抛出一个NotSerializable异常。我们可以用transient标记这个引用,则对象仍然可被序列化
ObjectInputStream和ObjectOutputStream
序列化时候如果想被特殊处理,要自己实现这两个方法,这两个方法不属于任何类,比较特殊。
Classes that require special handling during the serialization and deserialization process must implement special methods with these exact signatures:
接口 FilenameFilter 只有一个方法accept(),我们要实现这个接口重写这个方法
boolean | accept(File dir,String name) 测试指定文件是否应该包含在某一文件列表中。 |
File包含删除,创建文件等方法,File中包含目录和文件,用时候可查API
File.delete()可删除文件和空目录
2. 按结构分为:字节流:最底层是InputStream和OutputStream
字符流:最底层是Reader和Writer
读入流 输出流
节点流 过滤流: 过滤流用来包装节点流
最基本的输入流我们使用FileInputStream
3. 字节流的顶层是InputStream和OutputStream抽象类
字节流常用的有ByteArrayInputStream, BufferedInputStream,FileInputStream
装饰模式用FilterInputStream对节点流进行包装
4,。 字符流: 字符流的顶层是Writer和Reader抽象类
InputStreamReader :An InputStreamReader is a bridge from byte streams to character streams:
5. RandomAccessFile : 实现了DataOutputStream和DataInputStream,他的构造器可以使文件以只读或者读写的方式打开
随机访问文件,既可读取,又可写出(但是注意写入之后的位置位于末尾,如果要读取,要调用方法使他回到开头)
6. 序列化: 将对象转换为字节流保存起来,并在以后还原回来
反序列化:将对象在磁盘文件中返回回来的过程
一个对象若想实例化,他的类必须实现java.io.Serializable接口或者他的子接口,这个接口中没有任何方法,类似于Annotation接口,标示着这个类实现了这个接口,就可以被序列化
只能序列化对象的非静态成员变量,静态成员变量和方法不可被序列化。如果一个序列化对象的成员变量也是一个对象,这个对象的成员变量也会被序列化,如果一个成员变量不可序列化,则序列化失败,会抛出一个NotSerializable异常。我们可以用transient标记这个引用,则对象仍然可被序列化
ObjectInputStream和ObjectOutputStream
序列化时候如果想被特殊处理,要自己实现这两个方法,这两个方法不属于任何类,比较特殊。
Classes that require special handling during the serialization and deserialization process must implement special methods with these exact signatures:
private void writeObject(java.io.ObjectOutputStream out) throws IOException private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException;
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树