2

動作しないシリアライゼーション用のコードがいくつかあります。CanRead() と CanWrite() の両方を if ステートメントに挿入しようとしましたが、読み取りと書き込みのアクセス許可がないことが示されました。また、「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;
}

スタックトレース:

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)

保存用のものは GoodsList から congruet (読み込みではなく保存のみ) と上ですが、下にかなり長いので省略します。

事前に助けてくれてありがとう
Highace2

4

1 に答える 1

5

あなたは、読み取りまたは書き込みの権限がないと述べています。実際、権限がないことを示すエラーが表示されます。ファイルを作成しているディレクトリの ACL を変更するか、別のディレクトリを選択する必要があります。

于 2013-02-10T14:36:45.040 に答える