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

Java中的文件读取和写入函数如何使用?

发布时间:2023-06-19 05:47:19

在Java中,有许多不同的方法可以进行文件读取和写入。其中,主要有以下几种方法:

1. 使用FileReader/FileWriter类:这两个类是Java中常用的读取和写入文本文件的类。FileReader类用于读取字符流,FileWriter类用于写入字符流。使用这两个类的方法非常简单,只需要创建一个相应的对象,然后使用read()/write()等方法进行操作即可。以下是一个简单的使用示例:

// FileReader 示例
try (FileReader reader = new FileReader("example.txt")) {
    int data = reader.read();
    while (data != -1) {
        System.out.print((char) data);
        data = reader.read();
    }
} catch (IOException e) {
    e.printStackTrace();
}

// FileWriter 示例
try (FileWriter writer = new FileWriter("example.txt")) {
    writer.write("Hello World");
} catch (IOException e) {
    e.printStackTrace();
}

注意,在使用FileReader/FileWriter类时,要注意编码格式的设置。默认情况下,Java使用的是操作系统的默认编码格式,如果需要使用其他编码格式,需要指定相应的编码。

2. 使用BufferedReader/BufferedWriter类:这两个类是FileReader/FileWriter的升级版,提供了缓存读写的功能,可以提高读写效率。使用方法类似,只需要在创建对象时,将FileReader/FileWriter对象作为参数传入即可。示例代码如下:

// BufferedReader 示例
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
    String line = reader.readLine();
    while (line != null) {
        System.out.println(line);
        line = reader.readLine();
    }
} catch (IOException e) {
    e.printStackTrace();
}

// BufferedWriter 示例
try (BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"))) {
    writer.write("Hello World");
    writer.newLine();
    writer.write("Java is fun");
} catch (IOException e) {
    e.printStackTrace();
}

注意,在使用BufferedReader/BufferedWriter类时,要注意使用readLine()和write()方法时,需要加上换行符。

3. 使用Scanner/PrintWriter类:这两个类也是常用的读取和写入文本文件的类。Scanner类可以将文件中的数据读取为基本数据类型或字符串,PrintWriter类可以将数据写入文件中。以下是一个读取和写入文件的示例代码:

// Scanner 示例
try (Scanner scanner = new Scanner(new File("example.txt"))) {
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        System.out.println(line);
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

// PrintWriter 示例
try (PrintWriter writer = new PrintWriter(new FileWriter("example.txt"))) {
    writer.println("Hello World");
    writer.println("Java is fun");
} catch (IOException e) {
    e.printStackTrace();
}

注意,在使用PrintWriter类写入文件时,需要使用println()方法,这样可以自动在每一行的末尾加上换行符。

4. 使用InputStream/OutputStream类:如果需要读写二进制文件,例如图片、音频等文件,就需要使用InputStream/OutputStream类。以下是一个读取和写入二进制文件的示例代码:

// InputStream 示例
try (InputStream input = new FileInputStream("example.png")) {
    byte[] buffer = new byte[1024];
    int bytesRead = input.read(buffer);
    while (bytesRead != -1) {
        // 处理读取到的数据
        bytesRead = input.read(buffer);
    }
} catch (IOException e) {
    e.printStackTrace();
}

// OutputStream 示例
try (OutputStream output = new FileOutputStream("example.png")) {
    byte[] data = ...; // 从其他地方得到数据
    output.write(data);
} catch (IOException e) {
    e.printStackTrace();
}

由于是读写二进制数据,所以需要使用字节数组来保存数据,并使用read()/write()等方法进行读写。

综上所述,Java中的文件读取和写入函数使用非常简单,只需要了解不同类的功能和调用方式,就可以轻松地读取和写入文件,满足不同的需求。