您所在的位置:主页 > JAVA技术 >

Java文件流及其操作

时间:2014-05-24 16:46来源:未知 作者:疯狂java 点击:


  文件的输入输出流是编程语言中很重要的一个应用。

  文件流指的就是计算机中用于传输数据的通道,在Java.io包中,有Inputstream和Outputstream两个类,这两个类是说有字节输入输出流操作的父类。利用这两个类可以对输入输出流进行一系列的操作。

  OutputStream这个类决定了输出所要去往的目标,目标包括字节数组、文件或管道。该类包含了以下方法:

  close() =>关闭此输出流并释放与此流相关的所有系统资源

  flush() =>刷新此输出流并强制写出所有缓冲的输出字节,强制将数据传输通道中的数据输出到目标,因为将数据输出到硬盘文件时内存的发送速度远高于硬盘接收速度,在传输通道中有数据的留存,需要使用此方法强制将通道中的数据推出

  write(byte[] b) =>此方法实现了将数组b[]中的数据以字节的形式写入到输出流中

  write(byte[] b,int off,int len) =>此方法实现将数组b[]从off到len处的数据截取并写入到输出流中

  以下是对部分方法的使用:

  Java代码

  try {

  //根据文件对象建立文件输出流

  //建立管道流的时候自动检测是否存在该文件是否存在

  //FileOutputStream fos = new FileOutputStream(f);

  //参数1 =>要写入数据的文件路径

  //参数2 =>是否将数据追加到文件末尾

  FileOutputStream fos = new FileOutputStream(f,true);

  //得到要输出的字符串的字节数组

  byte[] bs = str.getBytes();

  //增强for循环

  for (byte b:bs) {

  //写出字节

  fos.write(b);

  }

  //强制将管道中的数据输出到目标

  //因为内存的发送速度远高于硬盘接收速度,需要强制将管道中的数据推出

  fos.flush();

  //关闭输出流

  fos.close();

  } catch (Exception e) {

  e.printStackTrace();

  }

  而在使用输出流时,输出流在文件不存在时会自动创建文件,在文件已经存在的情况下,可以选择是否将数据追加到源文件末尾

  InputStream类的作用是用来表示那些从不同数据源产生输入的类,这些数据源包括了字节数组、String对象、文件、数据传输管道等,其中包含了以下方法:

  available() =>此方法获得流中所含的字节数,返回一个int类型的值,这个值即为该流所含的字节数

  read() =>此方法从流中以单个字节的形式读取字节,返回值得范围在0—255之间,这个值就是当前读取的字节数据。

  Java代码

  int i = 0;

  int b = fin.read();

  while(b != -1) {

  bs[i] = (byte)b;

  b = fin.read();

  }

  mark() =>此方法标记当前字节的位置