Java同一个方法中,删除旧图片,生成新图片后,读取到的还是旧图片
时间: 2024-03-11 14:47:39 浏览: 105
java读取图片
4星 · 用户满意度95%
这种情况可能是因为你删除旧图片和生成新图片的操作是在同一个线程中执行的,而读取图片的操作也是在该线程中执行的,这就导致了读取到的图片还是旧图片。
解决这个问题的方法是在删除旧图片和生成新图片的操作之后,调用`Thread.sleep()`方法暂停一段时间,让线程休眠一段时间,再进行读取图片的操作。这样可以确保删除旧图片和生成新图片的操作已经完成,并且新的图片已经写入磁盘,从而可以读取到新的图片。
示例代码如下:
```java
// 删除旧图片
File oldFile = new File("old.jpg");
oldFile.delete();
// 生成新图片
File newFile = new File("new.jpg");
// 生成新图片的代码...
// 等待一段时间
try {
Thread.sleep(1000); // 等待1秒钟
} catch (InterruptedException e) {
e.printStackTrace();
}
// 读取新图片
FileInputStream fis = new FileInputStream(newFile);
// 读取新图片的代码...
```
在上面的代码中,我们先删除旧图片,然后生成新图片,并等待1秒钟,最后再读取新图片。这样就可以确保读取到的是新图片了。注意,`Thread.sleep()`方法中的参数单位是毫秒,可以根据需要调整等待时间。
阅读全文