JAVA学习笔记整理九(IO)
来源:互联网 发布:生死狙击矩阵怎么得 编辑:程序博客网 时间:2024/05/21 23:34
File类——操作文件的类
1. 一个File类的对象,表示了磁盘上的文件或目录。
2. File类提供了与平台无关的方法来对磁盘上的文件或目录进行创建或删除等常用操作。
3. 不能通过File类的对象存取文件的内容
JAVA文件操作工具类
//写一个文件工具类,可以统计某个文件或文件夹的大小,可以删除一个文件或目录,可以拷贝一个目录流—Stream概述
1. 在程序中所有的数据都是以流的方式来进行传输或保存的,程序需要数据时要使用输入流来读取数据,而程序需要将一些数据保存起来的时候,就要使用输出流。
2. 流的操作主要有字节流和字符流两大类,两类都有输入和输出操作。字节流输出数据主要使用OutputStream类完成,输入使用InputStream类完成。字符流输出数据主要使用Writer类完成,输入使用Reader类完成。
3. 主要操作流程
字节流
字节流主要操作byte型类型数据,以byte数组为准。
1. 字节输出流:OutputStream
2. 字节输入流:InputStream字符流
程序中一个字符等于两个字节
1. 字符输出流:Writer
2. 字节输出流:Reader
字节流与字符流区别
字节流在操作时是本身直接进行操作,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件。若是字节流未关闭,依旧可以输出内容,而字符流则不行,除非使用Writer类中的flush()方法
BufferedReader类:用于从缓冲区中读取内容,所有输出的字节数据都将放在缓冲区中,且只能接受字符输入流的实例,所以若为字节流,则必须使用InputStreamReader转换为字符流。
转换流
1. OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即将一个字符流的输出对象变为字节流的输出对象
2. InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象内存操作流
输入输出位置可以设置在文件上,而内存操作流ByteArrayOutputStream、ByteArrayInputStream则可将输出输入的位置设置在内存上
管道流
用于线程间的通信。一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。要使管道流有用,必须同时构造管道输入流和管道输出流打印流
数据操作流
可以按照一定的格式将数据输出,再通过数据输入流按照一定的格式将数据输入,方便地对数据进行处理对象序列化
1. 把一个对象变为二进制的数据流的一种方法
2. 一个对象要想能够实现序列化,必须实现Serializable接口
3. 当一个对象被序列化时,只保存对象的非静态成员变量,不能保存任何的成员方法和静态的成员变量
4. 实现序列化的类的对象是可以经过二进制数据流进行传输的,必须依靠对象输出流(ObjectOutputStream)和对象输入流(ObjectInputStream)保存的文件为二进制数据,且不可直接修改,因为会破坏其保存格式
- JAVA学习笔记整理九(IO)
- Java IO学习笔记(九):BufferedReader和Scanner
- Java IO学习笔记(九):BufferedReader和Scanner
- 学习笔记之Java IO整理概要
- java学习笔记(九)
- Java学习笔记(九)
- Java学习笔记(九)
- Java学习笔记(九)
- java学习笔记(九)
- Java学习笔记(九)
- 黑马程序员 java学习笔记 Day12:java中的IO整理
- java IO流 笔记整理
- Unix环境高级编程学习笔记(九) 高级IO
- Java学习笔记九
- java io 学习部分整理
- python学习笔记(九) - IO编程
- 笔记整理(java基础九-----String,StringBuffer,StringBuilder)
- java基础:IO(九)
- 设计模式之单例
- 微博推荐 第三个map 源码
- Verilog 的高阻态赋值不可综合的问题
- hbase日志
- jsp内置对象
- JAVA学习笔记整理九(IO)
- Oracle SQL语句优化技巧
- mysql中字段以2递增问题
- 关于调用adapter.notifydatasetchanged()没有效果的问题
- linux 内核定时器
- codeforces 676C. Vasya and String
- 第七次上机实验
- 【SSH系列】-- hibernate基本原理&&入门demo
- 图的最短路径问题