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

在Java中使用FileInputStream的read()函数读取文件内容

发布时间:2023-05-27 13:56:53

Java中的FileInputStream类提供了读取文件内容的功能。这个类的read()函数可以读取文件的字节,返回值是读取到的字节数,也就是说如果读到文件末尾就返回-1。下面简单介绍一下如何使用FileInputStream类的read()函数来读取文件内容。

首先,需要创建一个FileInputStream对象。这个对象可以接受一个文件路径作为参数,指定要读取的文件。例如:

FileInputStream fis = new FileInputStream("C:\\myfolder\\myfile.txt");

这个语句创建了一个名为fis的FileInputStream对象,并指定了要读取的文件路径是C:\myfolder\myfile.txt。

接下来,可以使用read()函数读取文件的字节。read()函数有多个重载形式,下面介绍其中的两个:

public int read() throws IOException
public int read(byte[] b) throws IOException

个read()函数每次读取一个字节,返回0到255的整数。如果已经达到文件的末尾,就返回-1。

第二个read()函数每次可以读取多个字节,将它们存储在一个字节数组中。返回值是读取到的字节数,如果已经达到文件末尾,就返回-1。

具体来说,可以使用while循环和read()函数来读取整个文件的内容。将读取到的字节存储在一个字节数组中,然后使用String类的构造函数将字节数组转换成字符串。最后关闭FileInputStream对象。示例代码如下:

FileInputStream fis = new FileInputStream("C:\\myfolder\\myfile.txt");
byte[] buffer = new byte[1024];

int length = 0;
String content = "";
while ((length = fis.read(buffer)) != -1) {
    content += new String(buffer, 0, length);
}

fis.close();
System.out.println(content);

这个代码先创建了一个名为fis的FileInputStream对象,并指定了要读取的文件路径。然后创建了一个长度为1024的字节数组作为缓冲区,用于存储读取到的字节。在while循环中,每次读取一段字节存储在buffer数组中,然后将这些字节转换成字符串并追加在content变量中。最后关闭FileInputStream对象并打印出读取到的文件内容。

需要注意的是,这个代码是一个简单的示例。在实际应用中,需要考虑到字符编码的问题,以及文件较大时分批次读取等问题。同时,由于Java 7引入的try-with-resources语句可以自动关闭资源,因此可以使用更为简洁的代码:

try (FileInputStream fis = new FileInputStream("C:\\myfolder\\myfile.txt")) {
    byte[] buffer = new byte[1024];

    int length = 0;
    String content = "";
    while ((length = fis.read(buffer)) != -1) {
        content += new String(buffer, 0, length);
    }

    System.out.println(content);
} catch (IOException e) {
    e.printStackTrace();
}

这个代码使用了try-with-resources语句来创建FileInputStream对象,并在try块结束时自动关闭。其余部分与前面的代码类似。