我已经制作了两个旨在同时运行的应用程序(我不想将它们组合起来),一个从某个文件读取,另一个写入它。当一个或另一个运行没有错误时,但是如果它们都在运行,则获取访问被拒绝错误。第一个的相关代码:
class MakeImage implements Runnable {
@Override
public void run() {
File file = new File("C:/Users/jeremy/Desktop/New folder (3)/test.png");
while (true) {
try{
//make image
if(image!=null)
{
file.createNewFile();
ImageIO.write(image, "png", file);
hello.repaint();}}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
第二种的相关代码:
BufferedImage image = null;
try {
// Read from a file
image = ImageIO.read(new File("C:/Users/jeremy/Desktop/New folder (3)/test.png"));
}
catch(Exception e){
e.printStackTrace();
}
if(image!=null)
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write( image, "png", baos );
baos.flush();
byte[] imageInByte = baos.toByteArray();
baos.close();
returns=Base64.encodeBase64String(imageInByte);
}
我看了这个:Java:如何处理试图修改同一个文件的两个进程,但那是当两者都写入文件时,这里只有一个。我按照前者的答案尝试了稍后重试的方法,但没有任何运气。任何帮助将不胜感激。