我確實有一些序列化代碼不起作用。我試圖在if語句中插入CanRead()和CanWrite(),這表明他們沒有讀寫權限。我也嘗試將'java.io.File.setReadable'和'java.io.File.setWriteable'插入爲true,但仍然會拋出錯誤。IOException在java.io.File.createNewFile();
的代碼如下:
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)
的一個用於保存從商品詳細congruet(只保存而不是負載)和最多卻是相當長的時間在下面,所以我現在就離開它。
感謝您的幫助提前
Highace2
http://stackoverflow.com/a/23697734/715269 – Gangnus 2014-05-16 14:24:12
@Gangnus你可能已經注意到了,這個問題已經被回答了。它不是如何創造的,而是它指定的範圍。基本上選擇正確的目錄。 – Highace2 2014-05-17 20:46:58
問題是,它是重複的問題。它必須關閉,評論,但沒有回答。 – Gangnus 2014-05-19 08:22:20