同時に実行するように設計された2つのアプリを作成し(それらを組み合わせたくない)、1つは特定のファイルから読み取り、もう1つはそのファイルに書き込みます。どちらか一方がエラーを実行していない場合でも、両方が実行されている場合は、アクセスが拒否されたというエラーが発生します。最初の関連コード:
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();
}
}
}
}
2番目の関連コード:
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:同じファイルを変更しようとしている2つのプロセスを処理する方法、しかしそれは両方がここに1つしかないファイルに書き込みをしているときです。前者の答えで提案されているように、後で再試行する方法を試してみましたが、運がありませんでした。どんな助けでも大歓迎です。