dxs32 2023-11-25 11:43 采纳率: 75%
浏览 11
已结题

javaio流中读取不到配置文件,配置文件在src目录下,此类在src下的包里

package MyIo;
import java.io.FileReader;
import java.io.IOException;
import java.io.Serializable;
import java.util.Properties;

public class TextExtend implements Serializable {
    private int age;
    private String name;
    private String color;

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public TextExtend(String name,int age,String color) {
        this.age = age;
        this.name = name;
        this.color=color;
    }

    @Override
    public String toString() {
        return "TextExtend{" +
                "age=" + age +
                ", name='" + name + '\'' +
                ", color='" + color + '\'' +
                '}';
    }

    public static void main(String[] args) throws IOException {
        String s="src\\dog.properties";
        Properties ps = new Properties();
       ps.load(new FileReader(s));
        TextExtend textExtend = new TextExtend(ps.getProperty("name"), Integer.parseInt(ps.getProperty("age")),ps.getProperty("color"));
        System.out.println(textExtend);
    }
}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-25 15:18
    关注

    【以下回答由 GPT 生成】

    问题分析: 问题中的代码尝试从src目录下的配置文件读取数据,但无法成功读取到配置文件的内容。这是因为在Java工程中,src目录下的文件在编译后会被放置到classpath下的target目录中,而不是作为普通的文件存放在src目录中。因此,我们需要将配置文件放置到classpath下,才能正确读取到配置文件的内容。

    解决方案: 1. 将配置文件放置到项目的根目录下(与src目录同级)。 2. 修改代码,通过ClassLoader来读取配置文件。

    代码示例:

    public static void main(String[] args) throws IOException {
        String fileName = "dog.properties";  // 配置文件名称
        ClassLoader classLoader = TextExtend.class.getClassLoader();  // 获取当前类的ClassLoader
        InputStream inputStream = classLoader.getResourceAsStream(fileName);  // 通过ClassLoader获取配置文件的InputStream
        Properties properties = new Properties();
        properties.load(inputStream);  // 尝试读取配置文件
        // 接下来是你的逻辑处理
    }
    

    通过以上修改,代码将通过ClassLoader来获取配置文件的InputStream,这样就能够正确读取到配置文件的内容了。

    注: - 需要将配置文件放置到项目的根目录下,而不是src目录下。 - 代码中的dog.properties为示例,根据实际情况修改为正确的配置文件名称。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月4日
  • 已采纳回答 11月26日
  • 创建了问题 11月25日

悬赏问题

  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?