疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

IO流几个实用流对象


 

   

  IO流几个实用流对象 这段时间相继看到几个当初java基础掌握不太熟悉的io类,所以专门找资料复习了一下这几个类。

  它们是:

  RandomAccessFile // 随机读写流

  DataInputStream DataOutputStream // 数据读取/写入流

  ByteArrayInputStream BateArrayOutputStream // 字节数组读取/写入流

  CharArrayReader CharArrayWriter // 字符数组读取/写入流

  StringReader StringWriter // 字符串读取/写入流

  RandomAccessFile: 随机读写流

  该类不存在于IO体系中,而是直接继承自Object

  但此类存在于IO包中,因为它具备读和写的功能

  内部封装了一个数组,通过指针对数组的元素进行操作

  可以通过getFilePointer获取指针位置

  可以通过seek改变指针位置

  操作文件可以指定模式 r/w/rw

  可以直接写入到硬盘,不经过硬盘的缓存

  如果模式为只读 r。不会创建文件。会去读取一个已存在文件,如果该文件不存在,则会出现异常。

  如果模式rw。操作的文件不存在,会自动创建。如果存则不会覆盖。

  多线程下载时,可以用此类来完成分段写入

  DataInputStream DataOutputStream 数据读取/写入流

  可以对基本数据类型进行读和写的操作

  常用方法有: readInt/writeInt readBoolean/writeBoolean等

  //read demo

  private static void readData() throws IOException {

  DataInputStream dis = new DataInputStream(new FileInputStream(file));

  System.out.println(dis.readInt());

  System.out.println(dis.readBoolean());

  System.out.println(dis.readDouble());

  }

  //write demo

  private static void writeData() throws IOException {

  DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));

  dos.writeInt(256);

  dos.writeBoolean(false);

  dos.writeDouble(3.1415926);

  }

  数组写入/读取流 ByteArrayInputStream BateArrayOutputStream 字节数组读取/写入流` CharArrayReader CharArrayWriter 字符数组读取/写入流 StringReader StringWriter 字符串读取/写入流

  对内存进行写入和读取操作的流对象

  用流的读写思想来操作数组(数据)。