Java-读取Excel csv并打印-更改-新建

Java-读取Excel csv并打印-更改-新建,java,excel,csv,Java,Excel,Csv,有人能告诉我为什么Eclipse会给我这个错误吗: Exception in thread "main" java.io.IOException: Stream closed at java.io.BufferedWriter.ensureOpen(Unknown Source) at java.io.BufferedWriter.write(Unknown Source) at java.io.Writer.write(Unknown Source) at javadruckdruck.mai

有人能告诉我为什么Eclipse会给我这个错误吗:

Exception in thread "main" java.io.IOException: Stream closed
at java.io.BufferedWriter.ensureOpen(Unknown Source)
at java.io.BufferedWriter.write(Unknown Source)
at java.io.Writer.write(Unknown Source)
at javadruckdruck.main(javadruckdruck.java:52)
我搞不懂。我把它校对了十遍,但都不行

import java.io.*;                      


public class javadruckdruck {

    public static void main(String[] args)   throws IOException
    {



        //scanning
        FileReader       fr = new FileReader ("fax_user.csv")     ;
        BufferedReader   br = new BufferedReader (fr)             ;
        FileWriter       fw = new FileWriter("Druckausgabe.txt")  ;
        BufferedWriter   bw = new BufferedWriter (fw)             ;
        String textnow      = br.readLine ()                      ;
    //  bw.write (Email);
    //  bw.close();

        while (textnow !=null) {


        //Umlaute gegen ae,oe,ue tauschen
        String text = textnow                                     ; 

        String textXreplaced   = text                             ;
        textXreplaced          = text.replace ("ä","ae")          ;
        String textXXreplaced  = textXreplaced                    ;
        textXXreplaced         = textXreplaced.replace ("ü","ue") ;
        String textXXXreplaced = textXXreplaced                   ;
        textXXXreplaced        = textXXreplaced.replace ("ö","oe");
        String textXXXXreplaced= textXXXreplaced.replace("ß","ss");
        textXXXXreplaced       = textXXXreplaced                  ;

        //Text umformatieren, splitten, E-Mail, Nummer anhängen
        String textreplaced = textXXXXreplaced.replace(" ", "")   ;
        String textreplacedtwo = textreplaced.replace("\"","")    ;
        String textreplacedthree = textreplacedtwo.replace(";","");
        String [] parts     = textreplacedthree.split("[,]")      ;
        String part1        = parts[0]                            ;
        String part2        = parts[1]                            ;
        String part3        = parts[2]                            ;
        String Email        = "@bogestra.de"                      ;
        String Zahlen       = ";3"                                ;
        String finished     = part3 + "." + part2 + Email + Zahlen + part1;
        textnow             = br.readLine ()                      ;

        bw.write (finished);
        bw.close();     



        //System Ausgabe      
        //System.out.println(part3 + "." + part2 + Email + Zahlen + part1 );


    }





        br.close();

    }


    }

在循环内部关闭bw。您应该将线移动到回路外部:

  public static void main(String[] args)   throws IOException
    {



        //scanning
        FileReader       fr = new FileReader ("fax_user.csv")     ;
        BufferedReader   br = new BufferedReader (fr)             ;
        FileWriter       fw = new FileWriter("Druckausgabe.txt")  ;
        BufferedWriter   bw = new BufferedWriter (fw)             ;
        String textnow      = br.readLine ()                      ;
    //  bw.write (Email);
    //  bw.close();

        while (textnow !=null) {


        //Umlaute gegen ae,oe,ue tauschen
        String text = textnow                                     ; 

        String textXreplaced   = text                             ;
        textXreplaced          = text.replace ("ä","ae")          ;
        String textXXreplaced  = textXreplaced                    ;
        textXXreplaced         = textXreplaced.replace ("ü","ue") ;
        String textXXXreplaced = textXXreplaced                   ;
        textXXXreplaced        = textXXreplaced.replace ("ö","oe");
        String textXXXXreplaced= textXXXreplaced.replace("ß","ss");
        textXXXXreplaced       = textXXXreplaced                  ;

        //Text umformatieren, splitten, E-Mail, Nummer anhängen
        String textreplaced = textXXXXreplaced.replace(" ", "")   ;
        String textreplacedtwo = textreplaced.replace("\"","")    ;
        String textreplacedthree = textreplacedtwo.replace(";","");
        String [] parts     = textreplacedthree.split("[,]")      ;
        String part1        = parts[0]                            ;
        String part2        = parts[1]                            ;
        String part3        = parts[2]                            ;
        String Email        = "@bogestra.de"                      ;
        String Zahlen       = ";3"                                ;
        String finished     = part3 + "." + part2 + Email + Zahlen + part1;
        textnow             = br.readLine ()                      ;

        bw.write (finished);



        //System Ausgabe      
        //System.out.println(part3 + "." + part2 + Email + Zahlen + part1 );


    }
        bw.close();     




        br.close();

    }

第52行是哪一行?//从textnow bw.write开始(完成);bw.flush();}bw.close();br.close();}}仍然是一个错误“线程“main”java.lang.ArrayIndexOutOfBoundsException:2位于javadruckdruck.main(javadruckdruck.java:46)”@SteffenLehnhardt看起来有一行包含少于3个部分。最后是一个空行吗?在访问带有索引的部分之前,您应该检查一下。您的意思是在.CSV文件中@ @ StfnEnLeNHHART YES01,“Sommer,克劳斯”,它们是从A1到A1000的Excel文件中形成的,在哪里应该有空行?1000之后?如果是的话,如何阻止它?