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

Java中的IO函数:快速实现文件读写!

发布时间:2023-06-16 08:15:42

Java是目前应用较广的编程语言之一,也是大多数企业级应用程序的首选。Java提供了许多IO函数,这些函数可以帮助我们快速实现文件的读写操作,节省了我们大量的时间和精力。

Java IO分为两类:字节流和字符流。字节流操作的是字节流二进制数据,而字符流操作的则是字符数据。其中字节流基于InputStream和OutputStream,字符流则基于Reader和Writer。下面就让我们来了解一下Java中常用的IO函数。

一、字节流读写

字节流读写是指通过Java的InputStream和OutputStream实现对二进制文件的读写。InputStream和OutputStream可以帮助我们在程序中打开、写入、读取和关闭文件。下面是一些常用的读写字节流的函数。

1. FileInputStream和FileOutputStream

FileInputStream和FileOutputStream是最常用的读写字节流函数,它们可以分别打开、读写二进制文件。FileInputStream可以用来打开一个文件并返回一个InputStream对象,而FileOutputStream则可以用来打开一个文件并返回一个OutputStream对象。下面是一个简单的例子。

FileInputStream inputStream = null;
FileOutputStream outputStream = null;
try {
    inputStream = new FileInputStream("example.txt");
    outputStream = new FileOutputStream("example2.txt");
    int data;
    while ((data = inputStream.read()) != -1) {
        outputStream.write(data);
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (inputStream != null) {
        try {
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    if (outputStream != null) {
        try {
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2. DataInputStream和DataOutputStream

DataInputStream和DataOutputStream是基于InputStream和OutputStream的,它们可以帮助我们读写基本数据类型,如int、double、boolean等。下面是一个示例。

try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("example.dat"));
     DataInputStream dis = new DataInputStream(new FileInputStream("example.dat"))) {
    dos.writeInt(7);
    dos.writeDouble(6.0);
    dos.writeBoolean(true);
    System.out.println(dis.readInt());
    System.out.println(dis.readDouble());
    System.out.println(dis.readBoolean());
} catch (IOException e) {
    e.printStackTrace();
}

3. BufferedInputStream和BufferedOutputStream

BufferedInputStream和BufferedOutputStream是可以优化字节流的读写效率的函数,它们可以帮助我们在写入和读取时缓存数据。下面是一个简单的例子。

try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("example.txt"))) {
    String str = "hello world!";
    bos.write(str.getBytes());
} catch (IOException e) {
    e.printStackTrace();
}
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream("example.txt"))) {
    byte[] b = new byte[1024];
    int len;
    while ((len = bis.read(b)) != -1) {
        System.out.println(new String(b, 0, len));
    }
} catch (IOException e) {
    e.printStackTrace();
}

二、字符流读写

字符流读写是指通过Java的Reader和Writer实现对字符数据的读写。Java中的字符集统一采用Unicode格式。下面是一些常用的读写字符流的函数。

1. FileReader和FileWriter

FileReader和FileWriter是最常用的读写字符流的函数,它们可以分别打开、写入、读取和关闭字符数据。FileReader和FileWriter会自动处理字符集转换的问题。下面是一个简单的例子。

try (FileWriter writer = new FileWriter("example.txt")) {
    String str = "hello world!";
    writer.write(str);
} catch (IOException e) {
    e.printStackTrace();
}
try (FileReader reader = new FileReader("example.txt")) {
    char[] b = new char[1024];
    int len;
    while ((len = reader.read(b)) != -1) {
        System.out.println(new String(b, 0, len));
    }
} catch (IOException e) {
    e.printStackTrace();
}

2. BufferedReader和BufferedWriter

BufferedReader和BufferedWriter是可以优化字符流的读写效率的函数,它们可以帮助我们在写入和读取时缓存数据。下面是一个简单的例子。

try (BufferedWriter bw = new BufferedWriter(new FileWriter("example.txt"))) {
    String str = "hello world!";
    bw.write(str);
} catch (IOException e) {
    e.printStackTrace();
}
try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

三、总结

本文介绍了Java IO函数中常用的读写字节流和字符流函数。通过学习这些函数,我们可以更加高效地实现文件的读写操作,提高我们的编程效率。