我寫了一個將對象寫入文件的方法。 我使用泛型,所以也可以編寫一個從Object派生的對象(我也可以接受Object類型的參數,但這更清晰)。異常實用寫入文件
public static <T extends Object> void write(T item,String path)
throws FileNotFoundException,IOException
{
ObjectOutputStream os;
Object obj=item;
os=new ObjectOutputStream(new FileOutputStream(path));
os.writeObject(obj);
os.close();
}
所以懷疑是關於務實:正確離開例外走不處理他們,因爲我也寫了方法的第二個版本:
public static <T extends Object> void nothrow_write(T item,String path)
{
ObjectOutputStream os;
Object obj=item;
try
{
os=new ObjectOutputStream(new FileOutputStream(path));
os.writeObject(obj);
os.close();
}
catch(FileNotFoundException e)
{
System.out.println(e);
}
catch(IOException e)
{
System.out.println(e);
}
}
哪一種方法更務實正確? 第一個問題是,如果引發異常,則流將保持打開狀態。
使用這樣的泛型不會使任何se對我來說。這比'void write(Object,String)'更清晰嗎? – 2012-02-20 00:09:15
_是的,你是對的。我認爲我使用泛型只是爲了更清楚,它也可以接受一個Object._ – 2012-02-20 00:12:47
流在第二個例外中仍然是異常打開的。 – fgb 2012-02-20 00:25:57