异常信息
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();
}
}
}
}