I/O学习 --
来源:互联网 发布:美国地缘政治知乎 编辑:程序博客网 时间:2024/05/20 04:13
I/O:
————————>
一开始,之后字节流,之后又添加了面向字符和基于Unicode的类,这其中,基于Unicode主要是用于国际化,之前只支持8位的字节流,而Unicode字符为16位,JAVA中的char字符也是16位的,之后再JDK1.4之后又引入了nio的概念,它的引入大大的提高了速度(不管你显不显示的用nio编写代码),因为,它使用的结构更接近于OS里面执行I/O的方式,通道和缓冲器,唯一和通道交互的缓冲器是ByteBuffer,也就是说只可以加工字节的缓冲器,但是没办法输出或者读取对象,即使是字符串也不行,但是nio中FileInputStream,FileOutputStream,RandomAccessFile这三个类被修改了用以产生FileChannel,里面有方法在通道中产生Reader和Writer.其中又涉及到装饰器,装饰器:使用分层对象来动态透明地向单个对象中添加责任,和混型类似,但是前者使用组合和形式化结构,后者基于继承实现的,它的缺陷在于对于装饰器,只能有效的工作在装饰中的最后一层,filter是所有装饰器类的基类
A. 首先我们看到的是File这个类,他技能代表一个特定文件,又能代表一个目录。其中要注意List()(返回一个String []),带参不带参,两种方法,带参的话,带一个过滤器,FilenameFileter接口的话,里面会有accept()方法,对此目录下每个文件名调用accept(),返回boolean,还涉及到正则表达式,复杂,没弄太明白,就是
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
又涉及到匿名内部类,就要注意,在内部类调用外部对象数据的时候,数据要定义为final,
B.输入,输出:
a. InputStream:ByteArrayInputStream OutputStream:ByteArrayOutputStram
StringBufferInputStream FileOutputStream
FileInputStream PipedOutputStream
PipedInputStream FilterOutputStream
SequenceInputStream
FilterInputStream
1.FilterInputStream:中又包含DataInputStream,BufferedInputStream,还有两个用作编译器中,这些用来从InputStream中读出数据
2. FilterOutputStream:中又包含DataOutputStream,PrintStream,BufferedOutputStream,用来向OutputStream中写入
b.InputStream,OutputStream和Reader,Writer是两个不同的继承层次,前者为字节流,后者为字符流,而“适配器”类,InputStreamReader和OutputStreamWriter分别可以把InputStream和OutputStream转化为Reader和Writer!
C.RandomAccessFile使用于由大小已知的记录组成的文件,和之前的两个继承层次没有关系,其次只有RandomAccessFile支持搜寻方法,并且只使用于文件
D.对象序列化:就是要对象能够在程序不运行的情况下仍能保存信息,不随着程序结束而它的生命周期结束,具体内容就是将那些实现了Serializable接口(该接口知识一个标记接口,没有任何方法)的对象转换成一个字节序列,并能够将这个字节序列恢复成原本的对象,其实把信息写入文件或者数据库也能达到同样的效果,主要是为了支持两种特性
1.JAVA的远程方法调用(RMI),向远程对象发送消息时,需要通过对象序列化来传输参数和返回值
2.对JAVA Beans,在设计阶段对一个Beans的状态信息进行配置,这种状态必须保存下来,在程序启动时进行后期恢复
————————>
一开始,之后字节流,之后又添加了面向字符和基于Unicode的类,这其中,基于Unicode主要是用于国际化,之前只支持8位的字节流,而Unicode字符为16位,JAVA中的char字符也是16位的,之后再JDK1.4之后又引入了nio的概念,它的引入大大的提高了速度(不管你显不显示的用nio编写代码),因为,它使用的结构更接近于OS里面执行I/O的方式,通道和缓冲器,唯一和通道交互的缓冲器是ByteBuffer,也就是说只可以加工字节的缓冲器,但是没办法输出或者读取对象,即使是字符串也不行,但是nio中FileInputStream,FileOutputStream,RandomAccessFile这三个类被修改了用以产生FileChannel,里面有方法在通道中产生Reader和Writer.其中又涉及到装饰器,装饰器:使用分层对象来动态透明地向单个对象中添加责任,和混型类似,但是前者使用组合和形式化结构,后者基于继承实现的,它的缺陷在于对于装饰器,只能有效的工作在装饰中的最后一层,filter是所有装饰器类的基类
A. 首先我们看到的是File这个类,他技能代表一个特定文件,又能代表一个目录。其中要注意List()(返回一个String []),带参不带参,两种方法,带参的话,带一个过滤器,FilenameFileter接口的话,里面会有accept()方法,对此目录下每个文件名调用accept(),返回boolean,还涉及到正则表达式,复杂,没弄太明白,就是
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
又涉及到匿名内部类,就要注意,在内部类调用外部对象数据的时候,数据要定义为final,
B.输入,输出:
a. InputStream:ByteArrayInputStream OutputStream:ByteArrayOutputStram
StringBufferInputStream FileOutputStream
FileInputStream PipedOutputStream
PipedInputStream FilterOutputStream
SequenceInputStream
FilterInputStream
1.FilterInputStream:中又包含DataInputStream,BufferedInputStream,还有两个用作编译器中,这些用来从InputStream中读出数据
2. FilterOutputStream:中又包含DataOutputStream,PrintStream,BufferedOutputStream,用来向OutputStream中写入
b.InputStream,OutputStream和Reader,Writer是两个不同的继承层次,前者为字节流,后者为字符流,而“适配器”类,InputStreamReader和OutputStreamWriter分别可以把InputStream和OutputStream转化为Reader和Writer!
C.RandomAccessFile使用于由大小已知的记录组成的文件,和之前的两个继承层次没有关系,其次只有RandomAccessFile支持搜寻方法,并且只使用于文件
D.对象序列化:就是要对象能够在程序不运行的情况下仍能保存信息,不随着程序结束而它的生命周期结束,具体内容就是将那些实现了Serializable接口(该接口知识一个标记接口,没有任何方法)的对象转换成一个字节序列,并能够将这个字节序列恢复成原本的对象,其实把信息写入文件或者数据库也能达到同样的效果,主要是为了支持两种特性
1.JAVA的远程方法调用(RMI),向远程对象发送消息时,需要通过对象序列化来传输参数和返回值
2.对JAVA Beans,在设计阶段对一个Beans的状态信息进行配置,这种状态必须保存下来,在程序启动时进行后期恢复
- I/O函数学习
- Java I/O 学习
- I/O学习 --
- Overlapped I/O 学习
- I/O学习
- java I/O学习
- nodejs学习--I/O
- C++学习-I/O
- I/O流学习
- I/O学习之小结
- Winsock I/O 学习笔记
- I/O学习应用举例
- Socket I/O 模型 学习
- C++学习:输入输出I/O
- overlapped I/O的学习
- JAVA I/O流 学习
- Java I/O学习笔记
- JAVA I/O流 学习
- SharePoint代码调试
- 继承与静态成员,转换与继承
- C++容器使用经验总结(一)
- 深入Java虚拟机JVM类加载初始化学习
- 双向链表 , 添加 , 得到上层结构体地址
- I/O学习 --
- UML中的stereotype
- chapter6 Hibernate的关联映射
- 黑马程序员_repeater分页实现
- Redis 起步
- 设计模式解析与实现(C++)之Factory模式
- linxu __setup 宏
- 八款开源 Android 游戏引擎 (巨好的资源)
- C# 获取当前路径方法