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

Java中文件读写函数的使用方法及注意事项

发布时间:2023-06-10 15:47:24

Java 是一门非常强大的编程语言,对于文件读写也提供了丰富的相关 API 支持。在 Java 中,我们可以通过 InputStream、OutputStream、Reader、Writer 等类来进行文件读写操作。本文将向大家介绍如何使用 Java 中的文件读写函数以及需要注意的事项。

1. 文件读取函数

Java 中常用的文件读取函数有 FileInputStream 和 FileReader 两个类。FileInputStream 适用于读取二进制文件内容,而 FileReader 则适用于读取文本文件内容。

FileInputStream 的使用方法如下所示:

import java.io.*;

public class FileInputDemo {
    public static void main(String[] args) throws Exception {
        FileInputStream fis=new FileInputStream("C:\\code\\Test.txt");
        int data=fis.read();
        while(data!=-1) {
            System.out.println((char)data);
            data=fis.read();
        }
        fis.close();
    }
}

以上代码中,我们使用 FileInputStream 读取文件 Test.txt 的内容,并将读出的每一个字符打印出来。其中,read() 方法将一个字节读入到 data 变量中,返回的是一个整型,如果到达文件末尾则返回 -1。

接下来,我们将使用 FileReader 对文本文件进行读取操作:

import java.io.*;

public class FileReaderDemo {
    public static void main(String[] args) throws Exception {
        FileReader fr=new FileReader("C:\\code\\Test.txt");
        int data=fr.read();
        while(data!=-1) {
            System.out.println((char)data);
            data=fr.read();
        }
        fr.close();
    }
}

以上代码中,我们使用 FileReader 读取了文本文件 Test.txt 的内容,与 FileInputStream 不同的是 FileReader 读取的内容是字符类型。

2. 文件写入函数

Java 中常用的文件写入函数有 FileOutputStream 和 FileWriter 两个类。FileOutputStream 适用于写入二进制文件内容,而 FileWriter 则适用于写入文本文件内容。

FileOutputStream 的使用方法如下所示:

import java.io.*;

public class FileOutputStreamDemo {
    public static void main(String[] args) throws Exception {
        String content="Hello World!";
        FileOutputStream fos=new FileOutputStream("C:\\code\\Test.txt");
        byte[] bytes=content.getBytes();
        fos.write(bytes);
        fos.close();
    }
}

以上代码中,我们将字符串 "Hello World!" 写入到文件 Test.txt 中。我们首先使用 getBytes() 方法将字符串转换成一个字节数组,然后调用 write() 方法将字节数组写入到 FileOutputStream 对象中,此时系统会将这些字节写入到 Test.txt 文件中。最后,我们需要使用 close() 方法关闭 FileOutputStream 对象。

接下来,我们将使用 FileWriter 对文本文件进行写入操作:

import java.io.*;

public class FileWriterDemo {
    public static void main(String[] args) throws Exception {
        String content="Hello World!";
        FileWriter fw=new FileWriter("C:\\code\\Test.txt");
        fw.write(content);
        fw.close();
    }
}

以上代码中,我们将字符串 "Hello World!" 写入到 Test.txt 文件中。与 FileOutputStream 不同的是,FileWriter 可以直接写入字符串。

3. 注意事项

在使用 Java 进行文件读写操作时,需要注意以下几点:

(1)对于文件的读取和写入操作一定要进行异常处理,尤其是在文件不存在或文件路径无效的情况下需要特别注意。

(2)文件读写操作之后,一定要记得关闭相应的流,关闭的顺序与打开的顺序相反。

(3)在使用 FileWriter 写入文件时,如果文件原本不存在,则会自动创建该文件。但如果指定的路径是一个目录,则会抛出 IOException 异常。

(4)在进行文件读写操作时,需要考虑文件的编码格式,否则会出现乱码的情况。在读取文件时,需要指定文件的编码方式。在写入文件时,需要将字符串编码为指定的编码方式,否则写入的文件也会出现乱码。

(5)在进行文件读写操作时,需要考虑文件的大小,避免一次性读取或写入的数据过大导致内存溢出。为此,我们可以使用缓冲区来分批次进行读写操作,这样可以提高效率也能避免内存溢出的情况。

综上所述,Java 中的文件读写函数提供了非常便捷的操作方式。当我们需要读取或写入文件时,只需要实例化对应的流类,然后调用读写方法即可实现相关操作。同时我们还需要注意文件的行为方式以及编码方式等细节问题,从而最大程度地提高读写效率,避免出现不必要的错误。