漫步红林

品味技术与生活之间的差距,追求代码与国画之间的艺术.

BlogJava 联系 聚合 管理
  0 Posts :: 28 Stories :: 2 Comments :: 0 Trackbacks

         今天在做Java的IO写视频数据文件的时候,突然报了一个bad file descriptor,我以为是我的文件名写的不对,或者其他的操作出错了!由于函数是被c++的动态库回调的,所以我当初把错误归为c++报错,当我检查以后,发现,IO 才刚执行就关闭了流,导致报错。
         可以相当于此异常的代码如下

 1public class  TestBadFileDes
 2public static void main(String[] args)
 3FileOutputStream fos = null ; 
 4try
 5fos = new FileOutputStream("F:\\javatest.txt"); 
 6}
catch(FileNotFoundException fnf)
 7fnf.printStackTrace(); 
 8}
 
 9for(int i=0 ;i <100;i++)
10try
11fos.write(i); 
12fos.close(); 
13}
catch(IOException ioe)
14ioe.printStackTrace(); 
15}
 
16}
 
17}
 
18}
异常如下:
 1java TestBadFileDes
 2java.io.IOException: Bad file descriptor 
 3        at java.io.FileOutputStream.write(Native Method) 
 4        at FileTest.main(TestBadFileDes.java:38
 5java.io.IOException: Bad file descriptor 
 6        at java.io.FileOutputStream.write(Native Method) 
 7        at FileTest.main(TestBadFileDes.java:38
 8java.io.IOException: Bad file descriptor 
 9        at java.io.FileOutputStream.write(Native Method) 
10        at FileTest.main(TestBadFileDes.java:38
11java.io.IOException: Bad file descriptor 
12        at java.io.FileOutputStream.write(Native Method) 
13        at FileTest.main(TestBadFileDes.java:38
14java.io.IOException: Bad file descriptor 
15        at java.io.FileOutputStream.write(Native Method) 
16        at FileTest.main(TestBadFileDes.java:38
17java.io.IOException: Bad file descriptor 
18        at java.io.FileOutputStream.write(Native Method) 
19        at FileTest.main(TestBadFileDes.java:38
20java.io.IOException: Bad file descriptor 
21        at java.io.FileOutputStream.write(Native Method) 
22        at FileTest.main(TestBadFileDes.java:38
23java.io.IOException: Bad file descriptor 
24        at java.io.FileOutputStream.write(Native Method) 
25        at FileTest.main(TestBadFileDes.java:38
26java.io.IOException: Bad file descriptor 
27        at java.io.FileOutputStream.write(Native Method) 
28        at FileTest.main(TestBadFileDes.java:38
29java.io.IOException: Bad file descriptor 
30        at java.io.FileOutputStream.write(Native Method) 
31        at FileTest.main(TestBadFileDes.java:38
32java.io.IOException: Bad file descriptor 
33        at java.io.FileOutputStream.write(Native Method) 
34        at FileTest.main(TestBadFileDes.java:38
35java.io.IOException: Bad file descriptor 
36        at java.io.FileOutputStream.write(Native Method) 
37        at FileTest.main(TestBadFileDes.java:38
38java.io.IOException: Bad file descriptor 
39        at java.io.FileOutputStream.write(Native Method) 
40        at FileTest.main(TestBadFileDes.java:38
41java.io.IOException: Bad file descriptor 
42        at java.io.FileOutputStream.write(Native Method) 
43        at FileTest.main(TestBadFileDes.java:38
44java.io.IOException: Bad file descriptor 
45        at java.io.FileOutputStream.write(Native Method) 
46        at FileTest.main(TestBadFileDes.java:38
47java.io.IOException: Bad file descriptor 
48        at java.io.FileOutputStream.write(Native Method) 
49        at FileTest.main(TestBadFileDes.java:38
50java.io.IOException: Bad file descriptor 
51        at java.io.FileOutputStream.write(Native Method) 
52        at FileTest.main(TestBadFileDes.java:38
53java.io.IOException: Bad file descriptor 
54        at java.io.FileOutputStream.write(Native Method) 
55        at FileTest.main(TestBadFileDes.java:38
56java.io.IOException: Bad file descriptor 
57        at java.io.FileOutputStream.write(Native Method) 
58        at FileTest.main(TestBadFileDes.java:38
59java.io.IOException: Bad file descriptor 
60        at java.io.FileOutputStream.write(Native Method) 
61        at FileTest.main(TestBadFileDes.java:38
62java.io.IOException: Bad file descriptor 
63        at java.io.FileOutputStream.write(Native Method) 
64        at FileTest.main(TestBadFileDes.java:38
65java.io.IOException: Bad file descriptor 
66        at java.io.FileOutputStream.write(Native Method) 
67        at FileTest.main(TestBadFileDes.java:38
68java.io.IOException: Bad file descriptor 
69        at java.io.FileOutputStream.write(Native Method) 
70        at FileTest.main(TestBadFileDes.java:38
71java.io.IOException: Bad file descriptor 
72        at java.io.FileOutputStream.write(Native Method) 
73        at FileTest.main(TestBadFileDes.java:38
74
把close改成 flush.在流使用完毕后再close掉!问题解决
posted on 2009-02-27 09:10 苦瓜 阅读(5313) 评论(0)  编辑  收藏 所属分类: Corejava