欢迎访问宙启技术站
智能推送

Java中的文件读写函数FileInputStream和FileOutputStream介绍

发布时间:2023-06-12 16:30:38

Java中的文件读写函数FileInputStream和FileOutputStream是Java IO API中最常被使用的两个类。它们分别用于读取和写入文件流。在本文中,我们将介绍这两个类的基本用法和一些实际应用实例。

一、FileInputStream类

FileInputStream类用于从文件中读取数据,并将其转换为字节流。在使用时,通常需要创建一个FileInputStream对象。这个对象有两个常用的构造函数:

1. FileInputStream(File file):通过给定的file对象创建一个FileInputStream对象。

2. FileInputStream(String name):通过给定的文件路径名创建一个FileInputStream对象。

打开一个文件,并读取其中的数据的代码如下:

try {
      File file = new File("example.txt");
      FileInputStream fis = new FileInputStream(file);
      int content;
      while ((content = fis.read()) != -1) {
            System.out.print((char) content);
      }
      fis.close();
    } catch (IOException e) {
      e.printStackTrace();
}

这个代码片段首先创建了一个File对象,用于表示需要读取的文件。然后,利用FileInputStream类中提供的read()方法读取数据。read()方法每次从文件中读取一个字节的数据,并将这个字节转换为int类型返回。当 read()方法读取到文件末尾时,返回-1,整个文件内容读取完成,程序即可退出。

二、FileOutputStream类

FileOutputStream类用于向文件中写入数据。在使用时,通常需要创建一个FileOutputStream对象。这个对象有两个常用的构造函数:

1. FileOutputStream(File file):通过给定的file对象创建一个FileOutputStream对象。

2. FileOutputStream(String name):通过给定的文件路径名创建一个FileOutputStream对象。

打开一个文件,并将一段文本内容写入文件的代码如下:

try {
    File file = new File("example.txt");
    FileOutputStream fos = new FileOutputStream(file);
    String content = "hello world";
    byte[] bytes = content.getBytes();
    fos.write(bytes);
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}

这个代码首先创建了一个File对象,用于表示需要写入的文件。然后,利用FileOutputStream类中提供的write()方法将文本内容转换成字节数组,再写入文件中。

三、应用实例

1. 读取二进制文件

如下例子所示,读取一张.jpg图片,并将它的内容写入另一个.jpg文件中。

try {
    File file = new File("pic.jpg");
    FileInputStream fis = new FileInputStream(file);
    File output = new File("output.jpg");
    FileOutputStream fos = new FileOutputStream(output);
    byte[] buffer = new byte[1024];
    int length;
    while ((length = fis.read(buffer)) > 0) {
        fos.write(buffer, 0, length);
    }
    fis.close();
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}

首先创建了一个FileInputStream对象和一个FileOutputStream对象,分别读和写图片文件。接着利用一个缓存数组读取文件内容,并通过FileOutputStream将读取到的内容写入文件中。

2. 读取文本文件

如下例所示,读取一个.txt文本文件,并将文件中的内容输出到控制台上:

try {
    File file = new File("example.txt");
    BufferedReader br = new BufferedReader(new FileReader(file));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
    br.close();
} catch (IOException e) {
    e.printStackTrace();
}

首先创建了一个BufferedReader对象,然后创建一个文件读取流,并将它传递给BufferedReader对象,这样就能按行读取文件内容。读取过程中,使用readLine()方法读取文件每一行的内容,并将它输出到控制台上。

四、总结

本文介绍了Java中的文件读写函数FileInputStream和FileOutputStream的基本用法和一些实际应用实例。这些类在Java中是非常常用的,它们提供了对文件的读写操作,并且也提供了方法来确保文件读写的安全性。在实际编程中,我们可以根据实际需求来灵活运用这些类的方法。