Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在硬盘上多次保存文件,并且不';不要损坏硬盘?_Java_Memory_Vaadin_Hard Drive_Darknet - Fatal编程技术网

Java 如何在硬盘上多次保存文件,并且不';不要损坏硬盘?

Java 如何在硬盘上多次保存文件,并且不';不要损坏硬盘?,java,memory,vaadin,hard-drive,darknet,Java,Memory,Vaadin,Hard Drive,Darknet,这是个小问题。我正在使用javaprocessbuilder通过Darknet框架调用此命令 ./darknet detector test ./cfg/coco.data ./cfg/yolov4.cfg ./weights/yolov4.weights ./data/pictureOfMe.jpg -thresh 0.4 图片eofme.jpg将尽快更新并保存到硬盘驱动器中。然后,darknet文件将生成一个名为predictions.jpg的文件,我将阅读它 pictureOfMe.jp

这是个小问题。我正在使用
javaprocessbuilder
通过
Darknet
框架调用此命令

./darknet detector test ./cfg/coco.data ./cfg/yolov4.cfg ./weights/yolov4.weights ./data/pictureOfMe.jpg -thresh 0.4
图片eofme.jpg
将尽快更新并保存到硬盘驱动器中。然后,
darknet
文件将生成一个名为
predictions.jpg的文件,我将阅读它

pictureOfMe.jpg
->写入磁盘。未被阅读
predictions.jpg
->写入磁盘。然后在读

如果我将硬盘保存到本地硬盘,会不会损坏我的硬盘? 我能做得更好吗?比如在RAM上运行Java程序,或者做其他事情

我刚刚制作了一个软件,它同时使用了
Darknet
框架和
Vaadin
。这是一个web应用程序,用户可以在其中监视房间或类似的东西,然后在对象出现时获得邮件响应

问题:

有没有什么方法可以将一张图片保存在内存中,这样我就不会损坏硬盘了。这张图片被保存并快速阅读了好几个小时。还是今天不要紧?我听说硬盘驱动器限制了AMPTED的写作能力

我应该在Live CD上运行它吗?将整个操作系统加载到RAM上

很简单

// Snap
BufferedImage cameraImage = selectedWebcam.getImage(); // Take a snap
ByteArrayOutputStream byteImage = new ByteArrayOutputStream();
ImageIO.write(cameraImage, "png", byteImage);
byte[] streamBytes = byteImage.toByteArray();
// Classify
yoloDetection(streamBytes); // This save the file to the harddrive and then call Darknet

// Read the predictions.jpg file
StreamResource resource = new StreamResource("predictions.jpg", () -> {
try {
    return new FileInputStream(new File("Darknet/predictions.jpg"));
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
    return null;
});
ui.access(() -> {
    realTimeCameraImage.setSrc(resource); // Display the file
    enableDisableSelectAndButton();
});
如果您喜欢
Darknet
Yolo,请尝试该软件。

考虑挂载tmpfs/ramfs——您和您的程序(Java程序加上
darknet
命令`)可以像挂载硬盘一样访问其中的文件,只需使用正确的路径即可。尽管如此,还不清楚驱动器磨损是否是主要问题;也许重复将大文件写入SSD会成为一个问题。@nanofarad听起来不错。所以我只需要更改我的保存路径和加载路径?就这样?没有创建特定文件夹或其他东西?您可能需要先创建tmpfs--。对于superuser.com或superuser.com来说,进一步讨论如何在您的特定系统上执行此操作可能是一个很好的问题,但除了在tmpfs挂载中指示文件路径外,您不需要采取任何有关更改代码的步骤。事实上,如果您只需要使用
/tmp
中的路径,您就可以完成所有设置。但是,我不确定/tmp是否在您的系统上的tmpfs/RAMFS上。Linux内核足够聪明,可以在读取/写入文件系统时将信息缓存在内存中。@nanofarad否。我的意思是我将声明
/tmp/ram
将被读取并存储在ram内存中。