IOException at java.io.File.createNewFile();

Hig*_*ce2 2 java serialization filestream ioexception

我确实有一些无法序列化的代码。我试图在if语句中插入CanRead()和CanWrite(),这表明它们没有读写权限。我也尝试将'java.io.File.setReadable'和'java.io.File.setWriteable'插入为true,但仍然会引发错误。

代码如下:

public static void save(Object obj, String filename) throws FileNotFoundException, IOException
{
    File f = new File("c:/DatoChecker/" + filename);
    File dir = new File("c:/DatoChecker");
    if(!dir.exists())
        dir.mkdirs();
    f.setReadable(true);
    f.setWritable(true);
    if(!f.exists())
    {
        f.createNewFile();
    }
    FileOutputStream op = null;
    ObjectOutputStream objectStream = null;
    op = new FileOutputStream(f);
    objectStream = new ObjectOutputStream(op);
    objectStream.writeObject(obj);
    objectStream.close();
}

public static Object fetch(String filename) throws FileNotFoundException, IOException, ClassNotFoundException
{
    File f = new File("c:/DatoChecker" + filename);
    File dir = new File("c:/DatoChecker");
    if(!dir.exists())
        dir.mkdirs();
    f.setReadable(true);
    f.setWritable(true);
    if(!f.exists())
    {
        f.createNewFile();
    }
    FileInputStream ip = null;
    ObjectInputStream objectStream = null;
    Object obj = null;
    ip = new FileInputStream(f);
    objectStream = new ObjectInputStream(ip);
    obj = objectStream.readObject();
    ip.close();
    objectStream.close();  
    return obj;
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

SEVERE: null
java.io.IOException: access denied
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:947)
    at com.check.me.Serialization.fetch(Seralization.java:39)
    at com.check.me.GoodsList.load(GoodsList.java:82)
    at com.check.me.START.main(START.java:22)
Run Code Online (Sandbox Code Playgroud)

保存用的是GoodsList中的congruet(只是保存而不是加载),但是在下面它要长很多,所以我暂时不做介绍。

预先感谢您的帮助
Highace2

bma*_*ies 5

你的国家,你没有没有权限读取或写入。而且,的确,您会收到一条错误消息,告诉您您没有权限。您需要在创建文件的目录上更改ACL,或选择其他目录。