Java IO流

Java IO流是Java编程语言中用于输入输出的重要部分。它提供了一套完整的API,用于读写数据。在本文中,我们将探讨Java IO流的基本概念、分类和使用方法。
一、Java IO流的基本概念
Java IO流是一种用于读写数据的抽象概念。它将数据源(如文件、网络、内存等)与程序之间的数据传输抽象成流的形式。在Java中,流分为输入流和输出流。输入流用于从数据源读取数据,输出流用于将数据写入目的地。
二、Java IO流的分类
根据数据传输的单位,Java IO流可以分为字节流和字符流。
1. 字节流:以字节为单位进行数据传输。Java提供了InputStream和OutputStream两个抽象类,分别表示输入字节流和输出字节流。常用的字节流类有FileInputStream、FileOutputStream、ByteArrayInputStream、ByteArrayOutputStream等。
2. 字符流:以字符为单位进行数据传输。Java提供了Reader和Writer两个抽象类,分别表示输入字符流和输出字符流。常用的字符流类有FileReader、FileWriter、CharArrayReader、CharArrayWriter等。
三、Java IO流的使用方法
1. 文件读写:使用FileInputStream和FileOutputStream类进行文件的读写操作。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileReadWrite {
    public static void main(String[] args) {
        try {
            FileInputStream in = new FileInputStream("input.txt");
            FileOutputStream out = new FileOutputStream("output.txt");
            int c;
            while ((c = in.read()) != -1) {
                out.write(c);
            }
            in.close();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


2. 缓冲流:使用BufferedReader和BufferedWriter类进行缓冲读写操作,提高读写效率。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedReadWrite {
    public static void main(String[] args) {
        try {
            BufferedReader in = new BufferedReader(new FileReader("input.txt"));
            BufferedWriter out = new BufferedWriter(new FileWriter("output.txt"));
            String line;
            while ((line = in.readLine()) != null) {
                out.write(line);
                out.newLine();
            }
            in.close();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


3. 对象序列化:使用ObjectInputStream和ObjectOutputStream类实现对象的序列化和反序列化。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class ObjectSerialize {
    public static void main(String[] args) {
        try {
            // 序列化
            ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.txt"));
            Student student = new Student("张三", 20);
            out.writeObject(student);
            out.close();
            // 反序列化
            ObjectInputStream in = new ObjectInputStream(new FileInputStream("object.txt"));
            Student deserializedStudent = (Student) in.readObject();
            System.out.println(deserializedStudent.getName() + " " + deserializedStudent.getAge());
            in.close();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

class Student implements Serializable {
    private String name;
    private int age;
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
}


四、总结
Java IO流是Java编程中不可或缺的部分,掌握IO流的使用方法对于进行文件操作、网络编程等具有重要意义。通过本文的介绍,希望您对Java IO流有了更深入的了解。在实际编程过程中,请根据需要选择合适的流类,并注意资源的释放。
 

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值