首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java.io.IOException: Bad file descriptor

2011-12-26 
请问:bad file descriptor是什么错误?这是源代码:[codeJava]import java.io.*public classFileTest2{pub

请问:bad file descriptor是什么错误?
这是源代码:[code=Java]import java.io.*;
public class FileTest2{
public static void main(String[] args){
FileOutputStream fos = null ;
try{
fos = new FileOutputStream("F:\\java_ex\\abc.txt");
}catch(FileNotFoundException fnf){
fnf.printStackTrace();
}
for(int i='A';i<'Z';i++){
try{
fos.write(i);
fos.close();
}catch(IOException ioe){
ioe.printStackTrace();
}
}
}
}[/code]
这是错误提示:
F:\java_ex>javac FileTest2.java

F:\java_ex>java FileTest
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)


  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)
java.io.IOException: Bad file descriptor
  at java.io.FileOutputStream.write(Native Method)
  at FileTest.main(FileTest.java:38)

F:\java_ex>

[解决办法]

Java code
import java.io.*;public class  TestFile2{public static void main(String[] args){    File f=new File("E:\\javaex\\abc.txt");    FileOutputStream fos = null ;try{    if(f.exists())        f.createNewFile();fos = new FileOutputStream(f);}catch(Exception fnf){fnf.printStackTrace();}for(int i='A';i <'Z';i++){try{fos.write(i);}catch(IOException ioe){ioe.printStackTrace();}}try {    fos.close();}catch (Exception ex) {    ex.printStackTrace();}}}
[解决办法]
你要把所有的字符都输出到文件里面了再调用close()关闭输出流
你的代码我帮你该了
错在你刚写入一个字符就关闭输出流了
[解决办法]
答:错误原因是:fos.close()放在for()循环中产生的。
解决方法:将fos.close()移到循环外面。即:在循环外面,加上:
try{
fos.close();
}catch(IOException e1){e1.printStackTrace();}
[解决办法]
Java code
 
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

class TestFile2 {
public static void main(String[] args) {

FileOutputStream fos = null;
try {
fos = new FileOutputStream("E:\\java_ex\\abc.txt");
for (int i = 'A'; i < 'Z'; i++) {
try {
fos.write(i);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
} catch (FileNotFoundException fnf) {
fnf.printStackTrace();
}finally{
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}
}

热点排行
Bad Request.