IO流(2)

本文详细介绍了Java中IO流的基本概念及其使用方法,包括字节数组输入输出流、处理流如DataInputStream和DataOutputStream的使用,以及对象序列化与反序列化的过程。通过实例演示了如何利用这些流进行文件操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.youkuaiyun.com/twilight_karl/article/details/53257915
节点流

字节数组输入流 ByteArrayInputStream
字节数组输出流 ByteArrayOutputStream

将字节数组转化成流
ByteArrayInputStream(byte [] )
不用关闭
toByteArray() 输出到字节数组

处理流

输入流:DataInputStream(InputStream x) readXXX()
输出流:DataOutputStream(OutputStream x) writeXXX()

// DataInputStream/DataOutputStream 写入到文件/从文件读取
    public static void main (String [] args) throws IOException{
        File file = new File("D:/桌面/DataInputStream.txt");
        DataInputStream input = new DataInputStream(new FileInputStream(file));
//      DataOutputStream output = new DataOutputStream(new FileOutputStream(file));
        int a = 100;
        double b = 200;
        String c = "string";
//      output.writeInt(a);
//      output.writeDouble(b);
//      output.writeUTF(c);
        int d = input.readInt();
        double e = input.readDouble();
        String f = input.readUTF();
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
//      output.close();
//      input.close();

    }
对象序列化

ObjectInputStream -> readObject()
ObjectOutputStream -> writeObject()
先序列化后反序列化,对象必须使用java.io.Seriallizable接口
不是所有属性都需要序列化,用transient表示不需要序列化的属性

可变参数只能放在新蔡的最后一个位置(Closeable …)
…可变参数,处理方式与数组一致
try- with-resource


打印流和输入流

system.out
system.in
printStream

PrintStream ps = System.out
ps.println();
ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(src)))
ps.println(); //输出到文件

System.out
System.err
System.in 键盘输入

PrintStream output = new PrintStream(new FileOutputStream(new File("D:/桌面/2.txt")));
output.print("printStream");

InputStream in = System.in;//system.in 实际上是一个InputStream流

重定向

setIn()
setOut()
setErr()

System.setOut(new PrintStream(new FileOutputStream(“”)));
System.out.println(“2333”);
System.setOut(new PrintStream(new FileOutputStream(new FileDescripter.out)));//返回控制台

System.setOut(new PrintStream(new FileOutputStream("D:/桌面/3.txt")));
System.out.println("重定向");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值