sách gpt4 ai đã đi

java - 在测试和生产代码中获取一致的资源文件夹路径

In lại 作者:行者123 更新时间:2023-12-02 08:20:34 25 4
mua khóa gpt4 Nike

以下代码将解码一个 Base64 字符串并将其保存到 resources/images 文件夹下的文件中。

private final static String IMAGE_FOLDER = new File("resources/images").getAbsoluteFile().getAbsolutePath();

public static String decodeBase64AndSaveImage(String data) throws IOException, BadRequestException {
thử {
if (data == null) {
trả về giá trị null;
}
String base64Image = data.split(",")[1];
byte[] imageBytes = DatatypeConverter.parseBase64Binary(base64Image);
BufferedImage img = ImageIO.read(new ByteArrayInputStream(imageBytes));
String imageId = generateRandomKey(15);
File imageFile = new File(IMAGE_FOLDER + File.separator + imageId);
ImageIO.write(img, "png", imageFile);
return imageId;
} catch (IllegalArgumentException e) {
throw new BadRequestException("Bad image data");
}
}

images 文件夹位于 /home/user/workspace/myproject/src/main/resources/images 下,但是当我运行测试时, IMAGE_FOLDER Đúng /home/user/workspace/myproject/resources/images

我可以理解,在生产环境中不再有 src/main 文件夹。但是如何在生产和测试环境中采用一致的方法呢?

注1

测试失败

注2

Tôi đã cố gắngClassLoader方法:

Classname.class.getClass().getResource("filename.png") 但它返回 null。

1 Câu trả lời

由于您的应用程序写入数据,因此我建议在您的项目代码外部维护包含目标目录路径的变量。我建议使用环境变量。如果路径存储在环境变量 IMG_DIR 中,您可以使用 System.getenv("IMG_DIR") 从 Java 代码访问此信息。将此配置项放在 JAR 外部使得将 JAR 移动到任何执行环境变得非常简单。

关于java - 在测试和生产代码中获取一致的资源文件夹路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45629983/

25 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com