从文件读取数据到Java程序的函数
发布时间:2023-05-21 20:22:14
Java中从文件读取数据到程序的函数有很多,其中比较常见的有FileInputStream和BufferedReader。这里将分别说明这两个函数的用法和实现方式。
1. FileInputStream
FileInputStream是Java中一个基本的输入流类,用于读取文件中的二进制数据。它的构造方法如下:
FileInputStream(File file) throws FileNotFoundException FileInputStream(String name) throws FileNotFoundException
构造方法中需要传入一个File对象或文件路径name,若文件不存在则会抛出FileNotFoundException异常。调用read()方法从文件中读取一个字节,返回值为int类型,表示实际读取的字节数。如果返回值等于-1,则表示读取到文件末尾。示例代码如下:
public static void main(String[] args) {
String fileName = "C:\\data.txt";
try {
FileInputStream fis = new FileInputStream(fileName);
int b = 0;
while ((b = fis.read()) != -1) {
System.out.print((char) b);
}
fis.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
上述代码中,读取文件中的数据并将其输出到控制台。
2. BufferedReader
BufferedReader是Java中一个高效的读取字符流的类。它的构造方法如下:
BufferedReader(Reader in, int size)
构造方法中需要传入一个Reader对象和缓冲区大小。Reader类是Java中一个基本的字符输入流类,可以从字符流中读取数据。示例代码如下:
public static void main(String[] args) {
String fileName = "C:\\data.txt";
try {
BufferedReader br = new BufferedReader(new FileReader(fileName));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
上述代码中,读取文件中的数据并将其输出到控制台。
从上述代码中可以看出,使用BufferedReader可以一次读取一行数据,而FileInputStream则需要一次读取一个字节。因此,对于大文件的读取,应该优先选择使用BufferedReader。同时,在读取完成后,记得关闭文件流,否则可能会出现文件被占用的情况。
