这是源代码:[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.javaF:\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>

解决方案 »

  1.   

    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();
    }
    }
    }
      

  2.   

    你要把所有的字符都输出到文件里面了再调用close()关闭输出流
    你的代码我帮你该了
    错在你刚写入一个字符就关闭输出流了
      

  3.   

    答:错误原因是:fos.close()放在for()循环中产生的。
    解决方法:将fos.close()移到循环外面。即:在循环外面,加上:
    try{
    fos.close();
    }catch(IOException e1){e1.printStackTrace();}
      

  4.   


    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();
    }
    }

    }
    }
      

  5.   

    修改后的代码:
    测试成功!!!!!!!!!!import java.io.*; 
     class  FileTest2{  static void main(String[] args){ 
    FileOutputStream fos = null ; 
    try{ 
    fos = new FileOutputStream("F:\\java_ex\\abc.txt");   
        for(int i='A';i <'Z';i++){ 

    fos.write(i); 



    fos.close(); 
    }catch(FileNotFoundException fe){
    fe.printStackTrace();
    }
     catch(IOException ioe){ 
    ioe.printStackTrace(); 
    }
    }


      

  6.   

     调试通过
    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);}catch(IOException ioe){
    ioe.printStackTrace();
    }
    finally{fos.close();}
    }
    }
    }