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

用Java编写一个函数,实现文件读写操作

发布时间:2023-06-11 15:15:45

文件读写操作在任何一个编程语言中都是非常常见的,Java语言中就提供了非常丰富的文件读写操作API,来满足我们日常的文件读写需求。在Java中,文件读写操作通常有两种方式:字节流和字符流。本文将介绍Java中文件读写操作的基本使用方法,分别从字节流和字符流两个方面来讲解。

一、字节流

字节流是Java中比较底层的文件读写操作方式,主要包括InputStream和OutputStream两个类。其中,InputStream类用于读取字节流,OutputStream类用于写入字节流。

1. 读取文件内容

要读取文件内容,我们需要使用InputStream类的子类FileInputStream来读取文件中的字节流。下面是一个读取文件内容的示例代码:

public class ReadFile {
    public static void main(String[] args) {
        try {
            // 读取文件
            FileInputStream fis = new FileInputStream("file.txt");
            byte[] buffer = new byte[1024];
            int len;
            while ((len = fis.read(buffer)) != -1) {
                System.out.write(buffer, 0, len);
            }
            // 关闭文件流
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先创建了一个FileInputStream对象,然后创建了一个长度为1024的字节数组buffer,用于存放读取到的文件内容。接着,我们使用while循环从文件流中读取字节,每次读取到的字节数保存在变量len中,如果读取到文件末尾,read()方法会返回-1,循环结束。最后,我们使用System.out.write()方法将读取到的字节数组输出到控制台。

2. 写入文件内容

要写入文件内容,我们需要使用OutputStream类的子类FileOutputStream来写入文件中的字节流。下面是一个写入文件内容的示例代码:

public class WriteFile {
    public static void main(String[] args) {
        try {
            // 写入文件
            FileOutputStream fos = new FileOutputStream("file.txt");
            byte[] data = "Hello, World!".getBytes();
            fos.write(data);
            // 关闭文件流
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先创建了一个FileOutputStream对象,然后创建了一个byte数组data,用于存放要写入的字节流。接着,我们使用write()方法将字节数组写入到文件中。最后,我们使用close()方法关闭文件流。

二、字符流

字符流是Java中比较高级的文件读写操作方式,主要包括Reader和Writer两个类。其中,Reader类用于读取字符流,Writer类用于写入字符流。

1. 读取文件内容

要读取文件内容,我们需要使用Reader类的子类FileReader来读取文件中的字符流。下面是一个读取文件内容的示例代码:

public class ReadFile {
    public static void main(String[] args) {
        try {
            // 读取文件
            FileReader fr = new FileReader("file.txt");
            char[] buffer = new char[1024];
            int len;
            while ((len = fr.read(buffer)) != -1) {
                System.out.print(new String(buffer, 0, len));
            }
            // 关闭文件流
            fr.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先创建了一个FileReader对象,然后创建了一个长度为1024的字符数组buffer,用于存放读取到的文件内容。接着,我们使用while循环从文件流中读取字符,每次读取到的字符数保存在变量len中,如果读取到文件末尾,read()方法会返回-1,循环结束。最后,我们使用System.out.print()方法将读取到的字符数组输出到控制台。

2. 写入文件内容

要写入文件内容,我们需要使用Writer类的子类FileWriter来写入文件中的字符流。下面是一个写入文件内容的示例代码:

public class WriteFile {
    public static void main(String[] args) {
        try {
            // 写入文件
            FileWriter fw = new FileWriter("file.txt");
            String data = "Hello, World!";
            fw.write(data);
            // 关闭文件流
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先创建了一个FileWriter对象,然后创建了一个字符串data,用于存放要写入的字符流。接着,我们使用write()方法将字符串写入到文件中。最后,我们使用close()方法关闭文件流。

总结:

Java中的文件读写操作非常简单,无论是字节流还是字符流,都只需要几个步骤即可完成。在实际开发中,我们可以根据需要选择使用哪种文件读写操作方式,来满足我们的需求。同时,在进行文件读写操作时,一定要记得要使用try-catch语句来捕获可能发生的IOException异常,以保证程序的稳定性和可靠性。