异常信息java.io.IOException: No such file or directory at 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(); } } } }