Java中提供了一个FileInputStream类来处理文件输入流。 使用它可以轻松读取文件中的内容。 FileInputStream继承了InputStream类,用于打开一个文件,以便从中读取数据。在本文中,我们将详细介绍如何使用FileInputStream类。
一、文件的读取方式
以FileInputStream为例,读取文件的方式主要有两种:字节流和字符流。 FileInputSteam继承自InputStream,在InputStream中已实现了字符流和字节流的转换。 因此,FileInputStream可以读取以任意编码格式存储的数据。
下面通过代码演示FileInputStream读取文件的两种方式:
//字节流
FileInputStream fis = new FileInputStream("filePath");
int byteRead;
while ((byteRead = fis.read()) != -1) {
System.out.print((char)byteRead);
}
fis.close();
//字符流
Reader reader = new BufferedReader(new InputStreamReader(new FileInputStream("filePath")));
int charRead;
while ((charRead = reader.read()) != -1) {
System.out.print((char)charRead);
}
reader.close();
上述代码中,FileInputStream读取文件的方式在循环中不断读取每一个字节或字符并输出。 需要注意的是,这里将读取到的字节强制转换为char类型,以便输出。
二、文件的打开方式
在打开文件的时候,FileInputStream提供了许多不同的选项,以方便程序员自由控制其行为。 接下来,我们将介绍一些FileInputStream打开文件的常用选项:
1.文件路径
我们可以使用相对或者绝对路径来打开一个文件。如果使用相对路径,程序将使用当前工作目录来解析文件路径。 在下面的例子中以相对路径打开文件。
FileInputStream fis = new FileInputStream("file.txt");
当然,我们也可以使用绝对路径来打开一个文件,如下所示:
FileInputStream fis = new FileInputStream("C:\\Users\\lzq\\Desktop\\file.txt");
2.文件打开方式
在FileInputStream中,我们可以设置这样一个属性,就是当打开一个文件时,该文件不存在时是否创建新文件。 如果我们希望在文件不存在时自动创建文件,则可以将第二个参数设置为true。 下面的代码演示的是如何以只读方式打开文件,如果文件不存在,不会自动创建文件。
FileInputStream fis = new FileInputStream("file.txt");
在下面的代码中,我们以创建新文件的方式打开了文件。如果该文件不存在,则自动创建它。
FileInputStream fis = new FileInputStream("file.txt",true);
三、文件的读取操作
在打开一个文件之后,我们就可以执行文件的读取操作了。在FileInputStream中,我们提供了多种读取一个文件中数据的方式,包括read()、read(byte[] b)、read(byte[] b, int off, int len)等等,这里我们主要介绍read()方法的使用。
read() 方法的作用是从文件中读取一个字节。 如果该字节大于等于0,则返回该字节。如果该字节小于0,则文件末尾已经被读取,返回-1。
FileInputStream fis = new FileInputStream("filePath");
int byteRead;
while ((byteRead = fis.read()) != -1) {
System.out.print((char)byteRead);
}
fis.close();
在这段代码中,我们使用一个while循环来循环读取文件中的每一个字节,当读取到文件末尾时返回-1,停止循环。需要注意的是,我们需要将读取到的字节强制转换为char类型以便输出。
除了read()方法,我们还可以使用read(byte[] b)、read(byte[] b, int off, int len)等方法进行文件读取操作。但与read()方法不同的是,这些方法可以同时读取多个字节,因此能够提高文件读取效率。
四、总结
Java中提供了FileInputStream类用于处理文件输入流,同时也提供了多种操作方式。 当我们需要操作文件时,FileInputStream提供了丰富的选项,以方便程序员自由控制其行为。 本文介绍了如何使用FileInputStream以及各种选项的使用方式。
最后提醒大家,使用完FileInputStream后,一定要记得关闭文件。否则将会导致资源浪费和文件占用情况。
FileInputStream fis = new FileInputStream("filePath");
//文件读取操作
fis.close();
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/293222.html