21xrx.com
2024-12-23 02:09:45 Monday
登录
文章检索 我的文章 写文章
《JavaIO流:从入门到进阶》——探索文件操作的利器
2023-06-15 13:07:42 深夜i     --     --
JavaIO流 字节流 字符流 缓冲字符流

JavaIO流是Java编程中最基本也是最重要的部分之一。Java的文件/IO操作是通过流的方式实现的,而Java中的流分为字节流和字符流。本文将从入门到进阶全面介绍JavaIO流的应用,让你在文件操作方面拥有一把利器。

一、JavaIO流的分类

JavaIO流应当先分为两个大类,然后各自细分出若干个子类。它们如下:

1.字节流:用于处理8位字节,属于比较底层的IO操作,适用于处理字节或者二进制对象。

2.字符流:用于处理16位字符,提供了一种方便的文本操作方式(甚至是中文文本)。

二、字节流

1.FileInputStream和FileOutputStream

FileInputStream和FileOutputStream是JavaIO流读写文件的最基本、最常用的流,它们可以对文件进行读取和写入操作。下面是使用FileInputStream和FileOutputStream读写文件的代码案例:


public void fileStreamTest(){

  FileInputStream fis = null;

  FileOutputStream fos = null;

  try{

    fis = new FileInputStream("input.txt");

    fos = new FileOutputStream("output.txt");

    

    int len;

    byte[] buffer = new byte[1024];

    

    while((len = fis.read(buffer)) != -1){

      fos.write(buffer, 0, len);

    }

    

  }catch(IOException e){

    e.printStackTrace();

  }finally{

    try{

      fis.close();

      fos.close();

    }catch(IOException e){

      e.printStackTrace();

    }

  }

}

2.DataInputStream和DataOutputStream

DataInputStream和DataOutputStream是用于读写基本数据类型的流,可以将java中的基本类型转化为字节流,便于输出。下面是使用DataInputStream和DataOutputStream读写基本类型的代码案例:


public void dataStreamTest(){

  FileOutputStream fos = null;

  DataOutputStream dos = null;

  FileInputStream fis = null;

  DataInputStream dis = null;

  try{

    fos = new FileOutputStream("test");

    dos = new DataOutputStream(fos);

    

    dos.writeInt(123);

    dos.writeDouble(987.654);

    dos.writeBoolean(true);

    

    fis = new FileInputStream("test");

    dis = new DataInputStream(fis);

    

    int i = dis.readInt();

    double d = dis.readDouble();

    boolean b = dis.readBoolean();

    

    System.out.println(i);

    System.out.println(d);

    System.out.println(b);

    

  }catch(IOException e){

    e.printStackTrace();

  }finally{

    try{

      fis.close();

      dis.close();

      fos.close();

      dos.close();

    }catch(IOException e){

      e.printStackTrace();

    }

  }

}

三、字符流

1.FileReader和FileWriter

FileReader和FileWriter是JavaIO流读写文本文件的类,它们与FileInputStream和FileOutputStream不同的是,前者读写的是字符流,后者读写的是字节流。下面是使用FileReader和FileWriter读写文本文件的代码案例:


public void fileWriterTest(){

  FileWriter fw = null;

  try{

    fw = new FileWriter("output.txt");

    fw.write("Hello World!");

  }catch(IOException e){

    e.printStackTrace();

  }finally{

    try{

      fw.close();

    }catch(IOException e){

      e.printStackTrace();

    }

  }

}

public void fileReaderTest(){

  FileReader fr = null;

  try{

    fr = new FileReader("output.txt");

    char[] buffer = new char[1024];

    

    int len = fr.read(buffer);

    

    System.out.println(new String(buffer, 0, len));

  }catch(IOException e){

    e.printStackTrace();

  }finally{

    try{

      fr.close();

    }catch(IOException e){

      e.printStackTrace();

    }

  }

}

2.BufferedReader和BufferedWriter

BufferedReader和BufferedWriter是JavaIO流带缓冲的字符流处理方式,针对的是大量数据读写,读写速度较快。下面是使用BufferedReader和BufferedWriter读写文本文件的代码案例:


public void bufferedWriterTest(){

  BufferedWriter bw = null;

  try{

    bw = new BufferedWriter(new FileWriter("output.txt"));

    

    String s = "Hello World!你好,世界!\r\n";

    bw.write(s);

    bw.flush();

    

  }catch(IOException e){

    e.printStackTrace();

  }finally{

    try{

      bw.close();

    }catch(IOException e){

      e.printStackTrace();

    }

  }

}

public void bufferedReaderTest(){

  BufferedReader br = null;

  try{

    br = new BufferedReader(new FileReader("output.txt"));

    

    String line = null;

    while((line = br.readLine()) != null){

      System.out.println(line);

    }

  }catch(IOException e){

    e.printStackTrace();

  }finally{

    try{

      br.close();

    }catch(IOException e){

      e.printStackTrace();

    }

  }

}

四、总结

JavaIO流在Java中是一项非常重要的基础技能,掌握它可以让你更好地进行文件和IO操作。通过本文对JavaIO流的介绍,你应该已经对流的分类、字节流、字符流以及缓冲字符流有了一个较为深入的了解,相信这些知识会在你以后的开发过程中得到实际的应用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章