異常資訊
java.io.IOException: No such file or directoryat java.io.FileOutputStream.writeBytes(Native Method)at java.io.FileOutputStream.write(FileOutputStream.java:247)at com.nstc.framework.web.util.jsloader.JsFileModelMgrTest.testGetJs(JsFileModelMgrTest.java:53)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
異常原因
出現此類異常的情境就太多了,這隻是其中一種原因,當建立完成檔案流執行個體然後這裡使用了FileChannel,通過NIO對檔案內容進行操作,操作完成之後把FileChannel關閉,這裡嘗試寫就會拋錯了。
代碼
@Test public void testGetJs() { jfmmInst.doLoaderJs(); FileOutputStream fous = null; FileChannel fileChannel = null; try { fous = new FileOutputStream(testFile, false); fileChannel = fous.getChannel(); jfmmInst.doRestoreIO("ExtExtension", fileChannel); fileChannel.close(); fous.write("HelloWorld\n".getBytes()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } finally { if (fous != null) { try { fous.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } } }