返回

Java中的IO流: 简洁易懂,高效文件读写

后端

Java IO流简介

Java IO流是Java编程语言中用于读取和写入数据的重要组件。IO流可以是字节流或字符流,字节流用于读取和写入二进制数据,字符流用于读取和写入文本数据。Java IO流提供了多种方法来操作文件、网络连接和其他输入/输出设备。

Java IO传统流式IO

Java IO传统流式IO是Java IO流中最常用的方式。传统流式IO使用InputStream和OutputStream类及其子类来读取和写入数据。InputStream类用于读取数据,OutputStream类用于写入数据。InputStream和OutputStream类提供了多种方法来读取和写入数据,包括read()、write()、skip()和available()方法。

Java IO标准流

Java IO标准流是指System.in、System.out和System.err三个流。System.in用于读取来自键盘的输入,System.out用于向控制台输出数据,System.err用于向控制台输出错误信息。标准流是Java IO流中最常用的流之一,因为它们可以很容易地从任何Java程序中访问。

Java IO nio

Java IO nio是Java IO流中的一种新的IO方式。nio是基于通道和缓冲区的,它比传统的IO方式更加高效。nio提供了多种类来操作通道和缓冲区,包括FileChannel、SocketChannel和ByteBuffer类。

Java IO Files和Paths类

Java IO Files和Paths类是Java 7中引入的两个新的类,它们用于操作文件和路径。Files类提供了多种方法来操作文件,包括read、write、copy和delete方法。Paths类提供了多种方法来创建和操作路径,包括get、resolve和normalize方法。

Java IO流操作示例

读取文件

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class ReadFile {

    public static void main(String[] args) {
        try {
            // 创建FileInputStream对象
            FileInputStream fis = new FileInputStream("test.txt");

            // 创建缓冲区
            byte[] buffer = new byte[1024];

            // 从文件中读取数据
            int len;
            while ((len = fis.read(buffer)) != -1) {
                // 将读取的数据输出到控制台
                System.out.println(new String(buffer, 0, len));
            }

            // 关闭FileInputStream对象
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

写入文件

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteFile {

    public static void main(String[] args) {
        try {
            // 创建FileOutputStream对象
            FileOutputStream fos = new FileOutputStream("test.txt");

            // 将数据写入到文件中
            fos.write("Hello World!".getBytes());

            // 关闭FileOutputStream对象
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

复制文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyFile {

    public static void main(String[] args) {
        try {
            // 创建FileInputStream对象
            FileInputStream fis = new FileInputStream("test.txt");

            // 创建FileOutputStream对象
            FileOutputStream fos = new FileOutputStream("test-copy.txt");

            // 复制文件
            int len;
            byte[] buffer = new byte[1024];
            while ((len = fis.read(buffer)) != -1) {
                fos.write(buffer, 0, len);
            }

            // 关闭FileInputStream和FileOutputStream对象
            fis.close();
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

结论

Java IO流是Java编程语言中用于读取和写入数据的重要组件。Java IO流提供了多种方式来操作文件、网络连接和其他输入/输出设备。本文对Java IO传统流式IO,标准流,nio,以及Files和Paths类的操作做了演示和介绍,帮助读者快速掌握Java中的文件读写和复制。