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

从文件读取数据到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。同时,在读取完成后,记得关闭文件流,否则可能会出现文件被占用的情况。