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

Java中文件读取与写入的函数使用方法

发布时间:2023-06-17 08:12:46

Java是一种高级编程语言,也是其中一种流行的面向对象编程语言。Java拥有强大的文件读取和写入能力,可以让我们轻松读取和写入文本、二进制和XML等文件。在本文中,我们将介绍Java中文件读取和写入的函数使用方法。

一、文件读取

在Java中,文件读取通常分为两种类型:文本文件和二进制文件。

1. 文本文件的读取

Java中读取文本文件时,我们需要使用Java IO系统中的FileReader和BufferedReader类。

FileReader类可读取字符流,因此它非常适合读取文本文件。BufferedReader类是性能更好的读取方式,它可以缓存一段输入而不必每次都从磁盘中读取,从而节省了时间和资源。

以下是一个简单的Java代码示例,演示如何使用FileReader和BufferedReader读取文本文件:

import java.io.*;

public class ReadFile {
    public static void main(String[] args) throws IOException {
        FileReader fr=new FileReader("test.txt");
        BufferedReader br=new BufferedReader(fr);

        String line=null;
        while((line=br.readLine())!=null){
            System.out.println(line);
        }
        fr.close();
    }
}

在这个示例中,我们使用了Java的try-with-resource语法,从而确保正确关闭文件读取器。

2. 二进制文件的读取

Java中二进制文件的读取是通过使用Java IO系统中的InputStream和BufferedInputStream类来实现的。

同样,BufferedInputStream也是性能更好的读取方式,它可以缓存一段输入而不必每次都从磁盘中读取,从而节省了时间和资源。

以下是一个简单的Java代码示例,演示如何使用InputStream和BufferedInputStream读取二进制文件:

import java.io.*;

public class ReadBinaryFile {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("test.bin");
        BufferedInputStream bis=new BufferedInputStream(fis);

        byte[] buffer=new byte[1024];
        int bytesRead;
        while((bytesRead=bis.read(buffer))!=-1){
            for(int i=0;i<bytesRead;i++){
                System.out.print(Integer.toHexString(buffer[i]));
            }
        }
        fis.close();
    }
}

在这个示例中,我们使用了一个缓冲区,它的大小为1024字节,可以实现更高效的读取。

二、文件写入

在Java中,我们可以使用IO系统中的Writer和OutputStream类来写入文本和二进制文件。

3. 文本文件的写入

Java中写入文本文件时,我们需要使用Java IO系统中的FileWriter和BufferedWriter类。

以下是一个简单的Java代码示例,演示如何使用FileWriter和BufferedWriter写入文本文件:

import java.io.*;

public class WriteFile {
    public static void main(String[] args) throws IOException {
        FileWriter fw=new FileWriter("output.txt");
        BufferedWriter bw=new BufferedWriter(fw);

        bw.write("Hello, World!
");
        bw.write("This is a sample text file.");
        bw.close();
    }
}

在这个示例中,我们使用了Java的try-with-resource语法,从而确保正确关闭文件写入器。

4. 二进制文件的写入

Java中写入二进制文件时,我们需要使用Java IO系统中的OutputStream和BufferedOutputStream类。

以下是一个简单的Java代码示例,演示如何使用OutputStream和BufferedOutputStream写入二进制文件:

import java.io.*;

public class WriteBinaryFile {
    public static void main(String[] args) throws IOException {
        String hex="48656c6c6f20576f726c6421";
        byte[] data=new byte[hex.length()/2];
        for(int i=0;i<data.length;i++){
            int index=i*2;
            int j=Integer.parseInt(hex.substring(index,index+2),16);
            data[i]=(byte)j;
        }

        FileOutputStream fos=new FileOutputStream("output.bin");
        BufferedOutputStream bos=new BufferedOutputStream(fos);

        bos.write(data);
        bos.close();
    }
}

在这个示例中,我们将一个16进制字符串转换成了等效的字节值,并将它们写入了二进制文件中。

总结:

Java中文件读取和写入操作是我们日常开发中经常遇到的问题,我们需要掌握这些操作的基本知识和语法。在读取和写入大型文件时,使用缓冲器可以提高性能,降低系统开销。此外,不要忘记正确关闭文件读取器和写入器,以避免资源泄漏和文件损坏。