You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven版本应用中TXT文件的放置、读取方法及CSS修改疑问

迁移至CSS环境后无法读取平面文件的解决方案

文件正确放置位置

  • Maven项目中,运行时需要读取的资源文件必须放在src/main/resources目录下。如果你的代码里用的是/localidades.txt这种classpath根路径的引用,直接把localidades.txt放在src/main/resources根目录即可,Maven默认会将该目录下的文件打包到classpath中(最终位于jar包的classes目录下)。
  • 若后续需要按包路径组织资源,可在src/main/resources下创建对应包结构(比如src/main/resources/com/yourpackage/),此时读取路径需去掉开头的/,使用相对当前类的路径。

读取方式验证与调整

你当前使用的Display.getInstance().getResourceAsStream(getClass(), nombreArchivo)是Codename One框架的资源读取方法,路径规则如下:

  • 路径以/开头:从classpath根目录查找文件
  • 路径不带/:从当前类所在的包路径下查找文件

关键检查点

  1. 确认文件已被正确打包:打开生成的jar包,检查classes目录下是否存在localidades.txt。如果没有,需在Maven的pom.xml中确保资源配置正确(默认配置已包含,但自定义配置时需避免排除.txt文件):
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.txt</include>
            </includes>
        </resource>
    </resources>
</build>
  1. 添加空流判断:如果getResourceAsStream返回null,说明文件未找到,需抛出明确异常快速定位问题,修改leeArchivo方法:
private Vector leeArchivo(String nombreArchivo) throws IOException {
    InputStream lectura = Display.getInstance().getResourceAsStream(getClass(), nombreArchivo);
    if (lectura == null) {
        throw new FileNotFoundException("未找到文件: " + nombreArchivo);
    }
    // 后续原有逻辑...
}

是否需要修改CSS?

不需要。该问题属于资源文件路径与Java读取逻辑的问题,和CSS样式无关,无需调整CSS代码。

代码优化建议

  • 替换Vector为ArrayList:Vector是线程安全但性能较低的旧集合类,推荐使用ArrayList替代;
  • 使用try-with-resources自动关闭流:避免资源泄漏,简化代码:
private List<Localidades> leeArchivo(String nombreArchivo) throws IOException {
    try (InputStream lectura = Display.getInstance().getResourceAsStream(getClass(), nombreArchivo)) {
        if (lectura == null) {
            throw new FileNotFoundException("未找到文件: " + nombreArchivo);
        }
        List<Localidades> datos = new ArrayList<>();
        String registro;
        while ((registro = leeRegistro(lectura)) != null) {
            String[] tmp = registro.split(",");
            datos.add(new Localidades(Integer.parseInt(tmp[0]), tmp[1], tmp[2]));
        }
        return datos;
    }
}

内容的提问来源于stack exchange,提问作者Rubén Villarreal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:10:30