Java教程

javax.imageio.IIOException: Can't create cache file!

本文主要是介绍javax.imageio.IIOException: Can't create cache file!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

javax.imageio.IIOException: Can't create cache file!
at javax.imageio.ImageIO.createImageInputStream(ImageIO.java:361)
at javax.imageio.ImageIO.read(ImageIO.java:1351)

Caused by: java.nio.file.NoSuchFileException: D:\JAVASERVER\apache-tomcat-7.0.72-ElectBill-8091\temp\imageio3049143507735331701.tmp
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:230)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.createFile(Files.java:632)
at java.nio.file.TempFileHelper.create(TempFileHelper.java:138)
at java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:161)
at java.nio.file.Files.createTempFile(Files.java:897)

由找不到文件引起:java.nio.file.NoSuchFileException: ...\temp\imageio3049143507735331701.tmp
主要原因是使用imgio包进行操作时,默认会使用缓存目录:${tomcat}/temp,在此缓存目录会生成缓存文件,
时间戳.tmp(这一串数字应该是当前时间戳,临时文件名),但是有些tomcat,会把temp目录进行删除,因此报错
解决方法:
1、tomcat的安装目录下新建一个temp目录。
2、ImageIO.setCacheDirectory(cacheDirectory),设置缓存目录。
3、ImageIO.setUseCache(false)设置,更改缓存策略,不使用文件目录缓存,使用内存缓存。

这篇关于javax.imageio.IIOException: Can't create cache file!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!