java:getResourceAsStream返回null

本文介绍了在Java代码中使用getResourceAsStream加载资源文件时遇到的null问题,以及通过执行mvn clean命令解决该问题的实践。示例代码展示了如何正确读取并处理Avro Schema文件,进行数据序列化和反序列化操作。
摘要由CSDN通过智能技术生成
说明

我的情况可能是原因里面的一种,本文为老铁们提供参考使用

原因

我之前的代码是没有getResourceAsStream这一部分,后面加上以后就一直返回null。
后来我执行了 mvn clean 后就生效了

代码

在这里插入图片描述

import org.apache.avro.Schema;
import org.apache.avro.generic.GenericData;
import org.apache.avro.generic.GenericDatumReader;
import org.apache.avro.generic.GenericDatumWriter;
import org.apache.avro.generic.GenericRecord;
import org.apache.avro.io.*;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class BaseDemon {
    public static void main(String[] args) throws IOException {
        Schema.Parser parser = new Schema.Parser();
        // 这里是 getResourceAsStream
        Schema schema = parser.parse(BaseDemon.class.getResourceAsStream("avro/StringPair.avsc"));
//       输入
        GenericRecord genericRecord = new GenericData.Record(schema);
        genericRecord.put("left", "L");
        genericRecord.put("right", "R");
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        DatumWriter<GenericRecord> writer = new GenericDatumWriter<>(schema);
        Encoder encode = EncoderFactory.get().binaryEncoder(out, null);
        writer.write(genericRecord, encode);
        encode.flush();
        out.close();
        // 输出
        DatumReader<GenericRecord> reader = new GenericDatumReader<>(schema);
        Decoder decoder = DecoderFactory.get().binaryDecoder(out.toByteArray(), null);
        GenericRecord result = reader.read(null, decoder);
        System.out.println(result.get("left"));
        System.out.println(result.get("right"));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值