Pourquoi mon programme est le refus d'accès à créer un fichier?

Dans le livre que je suis en train de lire sur Java, il démontre la sérialisation à l'aide d'un programme écrit dans un fichier et le stocke à l'écart. J'ai une erreur étrange que je ne sais pas comment le lire et il me refuse l'accès à la création d'un .fichier txt. Voici l'erreur:

Exception in thread "main" java.io.FileNotFoundException: C:\testFile.txt (Access is denied)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at serializableTests.MyProgram.main(MyProgram.java:18)

Voici les deux classes pour le programme:

Classe d'utilisateur:

public class User implements Serializable {

    private static final long serialVersionUID = 4415605180317327265L;

    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

Et voici la classe principale:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.OutputStream;


public class MyProgram {
    public static void main(String[] args) throws IOException {
        User user = new User();
        user.setUsername("tpage");
        user.setPassword("password123");

        File file = new File("C:\\testFile.txt");
        OutputStream fileOutputStream = new FileOutputStream(file);
        ObjectOutputStream outputStream = new ObjectOutputStream(fileOutputStream);
        outputStream.writeObject(user);
        System.out.println("I've store the user object in a file called " + file.getName());
    }
}

sortie

2019-04-22 08:40:28,895 [main] INFO  g.t.service.impl.CsvServiceImpl - Directory structure created data/test/tnx-log/tnc.log false 
2019-04-22 08:40:28,895 [main] INFO  g.t.service.impl.CsvServiceImpl - file.getAbsoluteFile() : C:\Users\jigar\apps\workspace\trade-publisher\data\test\tnx-log\tnc.log canWrite() : false
2019-04-22 08:40:28,895 [main] INFO  g.t.service.impl.CsvServiceImpl - txn log file created data/test/tnx-log/tnc.log true 
2019-04-22 08:40:28,957 [main] INFO  g.t.service.impl.CsvServiceImpl - Directory structure created data/test/tnx-log/tnc.log false 
2019-04-22 08:40:28,957 [main] INFO  g.t.service.impl.CsvServiceImpl - file.getAbsoluteFile() : C:\Users\jigar\apps\workspace\trade-publisher\data\test\tnx-log\tnc.log canWrite() : false
@Override
public void createTxnInfoFile() throws IOException {
File file = new File(txnLogFile);
if (!file.exists()) {
boolean directoryStructureCreated = file.getParentFile().mkdirs();
logger.info("Directory structure created {} {} ", txnLogFile, directoryStructureCreated);
logger.info("file.getAbsoluteFile() : " + file.getAbsoluteFile() + " canWrite() : " + file.canWrite());
boolean fileCreated = file.createNewFile();
logger.info("txn log file created {} {} ", txnLogFile, fileCreated);
}
file = null;
}
Quelle est la version de Windows que vous utilisez? Le contrôle de compte d'utilisateur peut bloquer dans des sortes d'endroits merveilleux et même silencieusement. Nous avons eu des problèmes avec File#canWrite retour true mais alors pas du fichier à été écrit. Comme une note de côté, vous ne semblent jamais être la conclusion de votre flux, ce qui peut verrouiller le fichier
Je suis sous Windows 7. Est-ce un problème?
Voir la mdma est la réponse (et la fermeture de votre flux ;))
Essayez d'exécuter votre programme java avec les droits admin?

OriginalL'auteur hasherr | 2013-04-10