java的io操作
来源:互联网 发布:买口红热 知乎 编辑:程序博客网 时间:2024/05/18 03:19
java的io操作
1. File 类的使用
- Java.io.File类主要是完成了文件夹管理的命名、查询文件属性和处理目录等到操作
- 不能用于文件内容的访问
- 常用方法:
- File():构造函数,一般是依据文件所在的指定位置来创建文件对象。
- delet():从文件系统内删除该文件。
- deleteOnExit():程序顺利结束时从系统中删除文件。
- getAbsolutePath():返回文件的完整路径。
- isDirectory():判断该路径指示的是否是文件夹。
- isFile():判断该路径指示的是否是文件。
- length():返回文件长度。
- list():返回文件和目录清单。
- mkdir():生成指定的目录。
- mkdirs() 创建多级目录
- renameTo(File dest):更名文件。
2. RandomAccessFile类的使用
- RandomAccessFile是用来随机访问那些保存数据记录的文件的
- 你就可以用seek( )方法来访问记录,并进行读写了
- 这些记录的大小不必相同;但是其大小和位置必须是可知的。
- 该类仅限于操作文件。
- 是一个直接继承Object、独立的类。
- 打开文件
- 有两种模式"rw"(读写) "r"(只读)
- RandomAccessFile raf = new RandomeAccessFile(file,"rw")
- 文件指针,打开文件时指针在开头 pointer = 0;
- 写方法
- raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
- 读方法
- int b = raf.read()--->读一个字节
- 移动指正方法
- raf.seek(int );--->int 指的是跳转到的位置;
- 有两种模式"rw"(读写) "r"(只读)
- RandomAccessFile raf = new RandomeAccessFile(file,"rw")
- 文件指针,打开文件时指针在开头 pointer = 0;
- 写方法
- raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
- 读方法
- int b = raf.read()--->读一个字节
- 移动指正方法
- raf.seek(int );--->int 指的是跳转到的位置;
- int b = raf.read()--->读一个字节
- 移动指正方法
- raf.seek(int );--->int 指的是跳转到的位置;
3. 字节流
- InputStream、OutputStream
- InputStream抽象了应用程序读取数据的方式
- OutputStream抽象了应用程序写出数据的方式
- EOF = End 读到-1就读到结尾
- 输入流基本方法
- int b = in.read();读取一个字节无符号填充到int低八位.-1是 EOF
- in.read(byte[] buf)
- in.read(byte[] buf,int start,int size)
- 输出流基本方法
- out.write(int b) 写出一个byte到流,b的低8位
- out.write(byte[] buf)将buf字节数组都写入到流
- out.write(byte[] buf,int start,int size)
- FileInputStream、FileOutputStream
- 继承了InputStream、OutputStream
- FileInputStream 具体实现了在文件上读取byte数据
- FileOutputStream 实现了向文件中写出byte数据的方法
- DataOutputStream、DataInputStream
- 对"流"功能的扩展,可以更加方便的读取、写入int,long,字符等类型数据
- 如:writeInt()/writeDouble()/writeUTF()/readInt()/readDouble()/readUTF()等
- BufferedInputStream/BufferedOutputStream
- 这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入
- 或读取操作时,都会加上缓冲,这种流模式提高了IO的性能
- InputStream抽象了应用程序读取数据的方式
- OutputStream抽象了应用程序写出数据的方式
- EOF = End 读到-1就读到结尾
- 输入流基本方法
- int b = in.read();读取一个字节无符号填充到int低八位.-1是 EOF
- in.read(byte[] buf)
- in.read(byte[] buf,int start,int size)
- 输出流基本方法
- out.write(int b) 写出一个byte到流,b的低8位
- out.write(byte[] buf)将buf字节数组都写入到流
- out.write(byte[] buf,int start,int size)
- FileInputStream、FileOutputStream
- 继承了InputStream、OutputStream
- FileInputStream 具体实现了在文件上读取byte数据
- FileOutputStream 实现了向文件中写出byte数据的方法
- DataOutputStream、DataInputStream
- 对"流"功能的扩展,可以更加方便的读取、写入int,long,字符等类型数据
- 如:writeInt()/writeDouble()/writeUTF()/readInt()/readDouble()/readUTF()等
- BufferedInputStream/BufferedOutputStream
- 这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入
- 或读取操作时,都会加上缓冲,这种流模式提高了IO的性能
- 对"流"功能的扩展,可以更加方便的读取、写入int,long,字符等类型数据
- 如:writeInt()/writeDouble()/writeUTF()/readInt()/readDouble()/readUTF()等
- BufferedInputStream/BufferedOutputStream
- 这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入
- 或读取操作时,都会加上缓冲,这种流模式提高了IO的性能
4. 字符流
字符有字节构成,字符流是对字符进行操作,而字符又有不同的编码方式,故在使用时应注意编码问题。- InputStreamReader/OutputStreamWriter
- InputStreamReader 完成byte流解析为char流,按照编码解析
- OutputStreamWriter 提供char流到byte流,按照编码处理
- 其read(),write()方法一次只读写一个字符
- InputStreamReader 完成byte流解析为char流,按照编码解析
- OutputStreamWriter 提供char流到byte流,按照编码处理
- 其read(),write()方法一次只读写一个字符
- FileReader/FileWriter
- 直接对文件进行操作。
- 直接对文件进行操作。
- BufferedReader/BufferedWriter/PrintWriter
- 优化了读写,一次性读写一行
- BufferedReader ---->readLine 一次读一行
- BufferedWriter/PrintWriter ---->写一行
- 优化了读写,一次性读写一行
- BufferedReader ---->readLine 一次读一行
- BufferedWriter/PrintWriter ---->写一行
5. 对象的序列化和反序列化
- 对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化
- 若要将对象进行序列化必须让对象实现序列化接口(Serializable)才能进行序列化,否则将出现异常。
- 序列化接口无任何方法,只是一个标准。
- 在数据类型前加transient关键字可以使该数据不进行默认序列化,但可手动序列化。
- ObjectOutputStream/ObjectInputStream
- 序列化流(ObjectOutputStream),是过滤流----writeObject();
- 反序列化流(ObjectInputStream)---readObject();
- 序列化流(ObjectOutputStream),是过滤流----writeObject();
- 反序列化流(ObjectInputStream)---readObject();
1 0
- Java的IO操作
- java的IO操作
- Java的IO操作
- JAVA的IO操作
- java的io操作
- Java的IO操作
- Java IO的操作
- java的IO操作
- Java的IO操作
- Java的IO操作
- JAVA的IO操作
- Java IO:基于字节的IO操作
- 79、java的IO操作-IO
- 谈谈Java的IO操作
- JAVA的IO操作小结
- java 基本的io操作
- Java的IO流操作
- Java的IO流操作
- 使用boost::property_tree解析xml与json (三):parse_json设计
- std::vector::iterator重载了下面哪些运算符
- 深入理解Linux修改hostname
- hdu 1195 Open the Lock(BFS && DBFS)
- 复杂数据类型
- java的io操作
- iOS UI 03 事件和手势
- 汇编基本指令复习,以及逆向中如何跟esp ,ebp参数
- [Coursera]算法基础_Week2_枚举_Q2
- 自己写的一个简单的资源管理器
- PL/SQL Developer(解压版)连接64位的Oracle11g
- eclipse安装和卸载插件
- JAVA7 的ForkJoin框架-学习笔记
- RelativeLayout相对布局