Java中的FileInputStream是一种输入流,用于读取文件中的二进制数据或者字符数据。以下是详细的攻略:
1. FileInputStream的初始化
初始化FileInputStream需要提供文件路径作为输入参数,示例代码如下:
FileInputStream fis = new FileInputStream("path/to/file");
其中,"path/to/file"表示文件在计算机中的路径,可以为相对路径或绝对路径。
如果需要使用绝对路径,则可以使用如下代码:
FileInputStream fis = new FileInputStream(new File("/path/to/file"));
2. 读取文件中的数据
读取文件中的数据可以使用read()方法,该方法返回读取到的字节或字符。以下是示例代码:
// 读取一个字节
int b = fis.read();
// 循环读取所有字节
int data;
while ((data = fis.read()) != -1) {
// TODO
}
// 读取指定长度的字节
byte[] buffer = new byte[1024];
int length = fis.read(buffer);
3. 关闭FileInputStream
FileInputStream是一种资源,需要手动关闭以释放资源。可以使用close()方法来关闭FileInputStream。示例代码:
fis.close();
示例1: 读取txt文件
以下示例展示如何使用FileInputStream读取txt文件中的字符数据:
import java.io.*;
public class ReadFileDemo {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("file.txt");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
isr.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
示例2: 读取图片文件
以下示例展示如何使用FileInputStream读取图片文件中的二进制数据:
import java.io.*;
import java.util.Base64;
public class ReadImageDemo {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("image.png");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
byte[] data = bos.toByteArray();
String base64 = Base64.getEncoder().encodeToString(data);
System.out.println(base64);
bos.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上就是关于Java中的FileInputStream的完整攻略,包含初始化、读取数据和关闭FileInputStream等步骤,同时也有两个示例说明,分别演示了如何读取txt和图片文件数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中的FileInputStream(输入流) - Python技术站