Java-读取Excel csv并打印-更改-新建
有人能告诉我为什么Eclipse会给我这个错误吗: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
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之后?如果是的话,如何阻止它?