java基础知识之IO总结-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联主要从事做网站、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务辛集,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

java  基础知识之IO总结

     我计划在接下来的几篇文章中快速回顾一下Java,主要是一些基础的JDK相关的内容。

  工作后,使用的技术随着项目的变化而变化,时而C#,时而Java,当然还有其他一些零碎的技术。总体而言,C#的使用时间要更长一些,其次是Java。我本身对语言没有什么倾向性,能干活的语言,就是好语言。而且从面向对象的角度来看,我觉得C#和Java对我来说,没什么区别。

  这篇文章主要回顾Java中和I/O操作相关的内容,I/O也是编程语言的一个基础特性,Java中的I/O分为两种类型,一种是顺序读取,一种是随机读取。

  我们先来看顺序读取,有两种方式可以进行顺序读取,一种是InputStream/OutputStream,它是针对字节进行操作的输入输出流;另外一种是Reader/Writer,它是针对字符进行操作的输入输出流。

  下面我们画出InputStream的结构

  java  基础知识之IO总结

  1. FileInputStream:操作文件,经常和BufferedInputStream一起使用
  2. PipedInputStream:可用于线程间通信
  3. ObjectInputStream:可用于对象序列化
  4. ByteArrayInputStream:用于处理字节数组的输入
  5. LineNumberInputStream:可输出当前行数,并且可以在程序中进行修改

  下面是OutputStream的结构

  java  基础知识之IO总结

PrintStream:提供了类似print和println的接口去输出数据

  下面我们来看如何使用Stream的方式来操作输入输出

使用InputStream读取文件

使用FileInputStream读取文件信息
public static byte[] readFileByFileInputStream(File file) throws IOException
{
  ByteArrayOutputStream output = new ByteArrayOutputStream();
  FileInputStream fis = null;
  try
  {
    fis = new FileInputStream(file);
    byte[] buffer = new byte[1024];
    int bytesRead = 0;
    while((bytesRead = fis.read(buffer, 0, buffer.length)) != -1)
    {
      output.write(buffer, 0, bytesRead);
    }
  }
  catch(Exception ex)
  {
    System.out.println("Error occurs during reading " + file.getAbsoluteFile());
  }
  finally
  {
    if (fis !=null) fis.close();
    if (output !=null) output.close();
  }
  return output.toByteArray();
}

网页名称:java基础知识之IO总结-创新互联
当前地址:http://azwzsj.com/article/codpod.html