21xrx.com
2024-12-23 02:57:00 Monday
登录
文章检索 我的文章 写文章
Java中的输入流和输出流详解及案例
2023-06-16 09:27:45 深夜i     --     --
Java输入流 Java输出流 字节流 字符流 缓存流

Java中的输入流和输出流是进行文件操作常用的方式,通过输入流可以读取文件中的数据,通过输出流可以向文件中写入数据。本文将详细介绍Java中的输入流和输出流的使用方法,并提供代码案例。

一、输入流

输入流主要用于从文件中读取数据。Java中提供了多种输入流,包括字节流、字符流、缓存流等。

1.字节流

字节流主要用于读取二进制文件数据,如图片、音频等。Java中提供了InputStream和FileInputStream两种字节流,InputStream是所有字节输入流的超类。

示例代码:


public static void readByteStream() {

  File file = new File("test.txt");

  InputStream inputStream = null;

  try {

    inputStream = new FileInputStream(file);

    int length = inputStream.available();

    byte[] bytes = new byte[length];

    inputStream.read(bytes);

    String result = new String(bytes);

    System.out.println(result);

  } catch (IOException e) {

    e.printStackTrace();

  } finally {

    try {

      inputStream.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

2.字符流

字符流主要用于读取文本文件数据,如txt文本等。Java中提供了Reader和FileReader两种字符流,Reader是所有字符输入流的超类。

示例代码:


public static void readCharStream() {

  File file = new File("test.txt");

  Reader reader = null;

  try {

    reader = new FileReader(file);

    char[] chars = new char[1024];

    int length = reader.read(chars);

    String result = new String(chars, 0, length);

    System.out.println(result);

  } catch (IOException e) {

    e.printStackTrace();

  } finally {

    try {

      reader.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

3.缓存流

缓存流可以提高文件读取效率,Java中提供了BufferedInputStream和BufferedReader两种缓存流。

示例代码:


public static void readBufferStream() {

  File file = new File("test.txt");

  BufferedReader reader = null;

  try {

    reader = new BufferedReader(new FileReader(file));

    String line;

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

      System.out.println(line);

    }

  } catch (IOException e) {

    e.printStackTrace();

  } finally {

    try {

      reader.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

二、输出流

输出流主要用于向文件中写入数据。Java中提供了多种输出流,包括字节流、字符流、缓存流等。

1.字节流

字节流主要用于向文件中写入二进制数据,如图片、音频等。Java中提供了OutputStream和FileOutputStream两种字节流,OutputStream是所有字节输出流的超类。

示例代码:


public static void writeByteStream() {

  File file = new File("test.txt");

  OutputStream outputStream = null;

  try {

    outputStream = new FileOutputStream(file);

    String content = "hello, world";

    outputStream.write(content.getBytes());

  } catch (IOException e) {

    e.printStackTrace();

  } finally {

    try {

      outputStream.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

2.字符流

字符流主要用于向文件中写入文本数据,如txt文本等。Java中提供了Writer和FileWriter两种字符流,Writer是所有字符输出流的超类。

示例代码:


public static void writeCharStream() {

  File file = new File("test.txt");

  Writer writer = null;

  try {

    writer = new FileWriter(file);

    String content = "hello, world";

    writer.write(content);

  } catch (IOException e) {

    e.printStackTrace();

  } finally {

    try {

      writer.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

3.缓存流

缓存流可以提高文件写入效率,Java中提供了BufferedOutputStream和BufferedWriter两种缓存流。

示例代码:


public static void writeBufferStream() {

  File file = new File("test.txt");

  BufferedWriter writer = null;

  try {

    writer = new BufferedWriter(new FileWriter(file));

    String content = "hello, world";

    writer.write(content);

  } catch (IOException e) {

    e.printStackTrace();

  } finally {

    try {

      writer.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

三、关键词

Java输入流、Java输出流、字节流、字符流、缓存流

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复