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

Java中文件/IO操作函数的使用技巧和样例

发布时间:2023-05-23 22:22:52

文件/IO操作是Java编程中经常用到的功能之一,因为很多程序都需要读取或写入文件,或者与用户交互(例如通过控制台输入输出)。在Java中,文件/IO操作函数的使用是非常简单的,下面将介绍一些使用技巧和样例。

1. 文件读取

在Java中,我们可以使用FileInputStream和BufferedInputStream来读取文件。FileInputStream是用来打开文件的流,而BufferedInputStream是用来缓存数据的流。这样可以避免频繁的磁盘IO操作。

如下是一个简单的文件读取的例子:

import java.io.*;

public class FileReadExample {

    public static void main(String[] args) {

        File file = new File("input.txt");

        try (FileInputStream fis = new FileInputStream(file);
             BufferedInputStream bis = new BufferedInputStream(fis)) {

            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = bis.read(buffer)) != -1) {
                System.out.write(buffer, 0, bytesRead);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

以上代码使用try-with-resources语句创建流对象,在读取文件时使用BufferedInputStream缓存,每次读取1024个字节,直到读取完毕。如果发生异常,将打印出错误信息。

2. 文件写入

在Java中,我们可以使用FileOutputStream和BufferedOutputStream来写入文件。FileOutputStream是用来打开文件的流,而BufferedOutputStream是用来缓存数据的流。这样可以避免频繁的磁盘IO操作。

如下是一个简单的文件写入的例子:

import java.io.*;

public class FileWriteExample {

    public static void main(String[] args) {

        String outputFile = "output.txt";

        try (FileOutputStream fos = new FileOutputStream(outputFile);
             BufferedOutputStream bos = new BufferedOutputStream(fos)) {

            byte[] buffer = "Hello, world!".getBytes();
            bos.write(buffer);

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

以上代码使用try-with-resources语句创建流对象,在写入文件时使用BufferedOutputStream缓存,将一个字符串转换为字节数组并写入文件。如果发生异常,将打印出错误信息。

3. 输入输出

在Java中,我们可以使用Scanner和System.in来从控制台读取输入值,以及使用System.out来将数据输出到控制台。

如下是一个简单的输入输出的例子:

import java.util.Scanner;

public class InputOutputExample {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter your name: ");
        String name = scanner.nextLine();

        System.out.print("Enter your age: ");
        int age = scanner.nextInt();

        System.out.println("Name: " + name);
        System.out.println("Age: " + age);

    }

}

以上代码使用Scanner从控制台读取输入值,然后输出到控制台。如果输入的是字符串,可以使用nextLine()方法获取,如果输入的是整数,可以使用nextInt()方法获取。