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

使用Java中的File函数读取和写入文件内容。

发布时间:2023-06-14 17:27:57

Java中的File类提供了一些方法来读取和写入文件内容。这些方法可以用来读取文本文件、二进制文件或者其他类型的文件。下面将详细介绍如何使用Java中的File类读取和写入文件内容。

1.使用FileReader和FileWriter读取和写入文本文件

如果需要读取或写入文本文件,我们可以使用Java中的FileReader和FileWriter类。这两个类都继承自Reader和Writer类,因此使用它们时,需要在处理完文件之后,关闭它们。

FileReader类的构造函数接收一个文件名称或者File对象。构造函数可能会抛出FileNotFoundException异常,所以我们需要在代码中使用try-catch块来处理异常。

下面是一个从文本文件中读取文本内容的例子:

File file = new File("myFile.txt");
try {
    FileReader reader = new FileReader(file);
    int character;
    while ((character = reader.read()) != -1) {
        System.out.print((char) character);
    }
    reader.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

上述代码中,首先创建一个File对象,然后使用FileReader类的构造函数为指定的文件创建一个FileReader对象,然后在while循环中依次读取每个字符并打印到控制台上。

如果需要创建一个文本文件并向其中写入数据,可以使用FileWriter类。FileWriter的构造函数也接收一个文件名称或者File对象。在使用FileWriter类写入文件时,写入的数据将被追加到文件的末尾。如果需要覆盖文件中的内容,可以在创建FileWriter对象时使用第二个参数,将其设置为false。同样,也需要在使用完之后关闭它。

下面是一个将数据写入文本文件的例子:

File file = new File("myFile.txt");
try {
    FileWriter writer = new FileWriter(file, false);
    writer.write("Hello World");
    writer.close();
} catch (IOException e) {
    e.printStackTrace();
}

上述代码中,首先创建一个File对象,然后使用FileWriter类的构造函数为指定的文件创建一个FileWriter对象,第二个参数为false,表示覆盖方式。然后使用writer对象的write()方法将数据写入文件,最后关闭writer对象。

2.使用BufferedReader和BufferedWriter读取和写入文本文件

对于大型的文本文件,一次读取整个文件可能会占用过多的内存,因此我们可以使用Java中的BufferedReader和BufferedWriter类来读取和写入文本文件。这两个类的内部都包含了缓存区,所以可以一次读取或写入缓存区中的一定量数据,而不是一次性读取或写入整个文件。

下面是一个使用BufferedReader读取文本文件的例子:

File file = new File("myFile.txt");
try {
    BufferedReader reader = new BufferedReader(new FileReader(file));
    String line;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
    reader.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

上述代码中,我们使用了BufferedReader和FileReader类将文件读取到缓存区中,并使用readLine()方法逐行读取文件内容。最后我们关闭reader对象。

同样,我们可以使用BufferedWriter类来写入文本文件。

File file = new File("myFile.txt");
try {
    BufferedWriter writer = new BufferedWriter(new FileWriter(file, false));
    writer.write("Hello World");
    writer.newLine();
    writer.write("How are you?");
    writer.close();
} catch (IOException e) {
    e.printStackTrace();
}

上述代码中,我们使用了BufferedWriter和FileWriter类将数据写入缓存区中,并使用newLine()方法换行,在写入缓存区中的数据时,它们会作为一个整体一起写入到文件中。同样,在完成数据的读取或者写入操作之后,需要关闭它们。

3.使用FileInputStream和FileOutputStream读取和写入二进制文件

如果需要读取或写入二进制文件,我们可以使用Java中的FileInputStream和FileOutputStream类。这两个类都继承自InputStream和OutputStream类,它们提供了一些方法来读取和写入二进制数据。

下面是一个使用FileInputStream读取二进制文件的例子:

File file = new File("myFile.bin");
try {
    FileInputStream inputStream = new FileInputStream(file);
    int content;
    while ((content = inputStream.read()) != -1) {
        System.out.print(content);
    }
    inputStream.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

上述代码中,我们使用了FileInputStream类将二进制文件的内容读取到缓冲区中,并使用read()方法逐个字节地读取缓存区中的内容。

同样的,我们也可以使用FileOutputStream将二进制数据写入文件中。

File file = new File("myFile.bin");
try {
    FileOutputStream outputStream = new FileOutputStream(file, false);
    byte[] content = {10, 20, 30, 40, 50};
    outputStream.write(content);
    outputStream.close();
} catch (IOException e) {
    e.printStackTrace();
}

上述代码中,我们使用了FileOutputStream类将数据写入缓存区中,并使用write()方法将缓存区中的数据写入到二进制文件中。

总结

在使用Java进行文件读写时,我们可以根据文件类型和规模选择不同的处理方式。对于文本文件,可以使用FileReader、FileWriter、BufferedReader和BufferedWriter等类;对于二进制文件,可以使用FileInputStream和FileOutputStream等类。无论使用哪种方式,都需要在完成读取或者写入操作之后及时关闭打开的流。

通过上述介绍,我们可以了解到Java中的File类及其相关的读写类的基本用法。当我们需要对文件进行读写操作时,可以自行根据文件类型和规模进行选择。这些类的使用可以为我们提供方便,帮助我们更好地处理文件操作。