2015-10-01 3 views
0

Может кто-нибудь сказать мне, почему Eclipse, дает мне ошибку:Java - читать Excel CSV и распечатать их -changed- новый

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

    } 


    } 
+0

какая линия линия 52? – 0X0nosugar

ответ

0

Вы закрываете 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(); 

    } 
+0

// начало в textnow bw.write (готово); \t \t bw.flush(); \t \t \t \t \t \t \t \t} \t \t \t \t \t \t bw.close(); \t \t \t br.close(); \t \t \t} \t \t} Тем не менее ошибка "Исключение в потоке "главный" java.lang.ArrayIndexOutOfBoundsException: 2 \t в javadruckdruck.main (javadruckdruck.java:46)" –

+0

@SteffenLehnhardt Похоже, у вас есть линия с менее чем 3 частями. Mybe пустая строка в конце? Вы можете проверить это, прежде чем обращаться к части с индексом. – Jens

+0

Вы имеете в виду в .csv-файле? –

Смежные вопросы