Java输入流编写方法详解,有哪些关键步骤与技巧?
- 后端开发
- 2025-09-22
- 9
在Java中,输入流(InputStream)是用于读取数据的基本抽象类,它包括多种实现,如字节输入流(如 FileInputStream)、字符输入流(如 FileReader)等,下面将详细介绍如何使用Java中的输入流进行数据读取。
字节输入流(FileInputStream)
创建FileInputStream对象
你需要创建一个FileInputStream对象,并将其关联到一个文件,这可以通过以下代码实现:
FileInputStream fis = new FileInputStream("example.txt");
这里,“example.txt”是要读取的文件名。
读取数据
使用read()方法可以读取数据。read()方法返回读取的字节,如果到达文件末尾,则返回1。

关闭流
在读取完成后,需要关闭输入流,释放资源。
fis.close();
字符输入流(FileReader)
创建FileReader对象
与FileInputStream类似,首先创建一个FileReader对象,并将其关联到一个文件。
FileReader fr = new FileReader("example.txt");
读取数据
使用read()方法读取字符数据。read()方法返回读取的字符,如果到达文件末尾,则返回1。

关闭流
在读取完成后,关闭FileReader对象。
fr.close();
读取数据到数组
使用read(byte[] b)方法可以将数据读取到数组中。
byte[] buffer = new byte[1024]; int bytesRead = fis.read(buffer); while (bytesRead != 1) { // 处理读取到的数据 System.out.print(new String(buffer, 0, bytesRead)); bytesRead = fis.read(buffer); }
下面是一个表格,归纳了使用FileInputStream和FileReader读取文件的方法:

| 方法 | FileInputStream | FileReader |
|---|---|---|
| 创建对象 | FileInputStream(String fileName) | FileReader(String fileName) |
| 读取数据 | int read() | int read() |
| 读取数据到数组 | int read(byte[] b) | int read(char[] c) |
| 关闭流 | void close() | void close() |
FAQs
Q1:为什么在读取文件时需要关闭流?
A1:关闭流可以释放文件资源,避免文件占用过多系统资源,同时可以防止数据泄露。
Q2:如何处理读取文件时可能出现的异常?
A2:可以使用trycatch语句捕获并处理异常。
try { FileInputStream fis = new FileInputStream("example.txt"); // 读取数据 fis.close(); } catch (FileNotFoundException e) { System.out.println("文件未找到!"); } catch (IOException e) { System.out.println("读取文件时发生错误!"); }