java扫描文件并替换字符
我创建了一个程序,可以扫描一个文本文件,切换某些字符,然后打印到另一个文件中。我创建了一个程序,将“|”更改为“\t”,将“\n”更改为“”。有一个运行时错误,表示“线程中的异常”main“java.lang.NullPointerException 11月5日。main(Nov5.java:20)”
如果有人知道如何纠正这个错误并让我的程序运行,那就太好了。非常感谢
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.BufferedWriter;
public class Nov5
{
public static void main( String args[] )
{
try
{
BufferedReader br = new BufferedReader(new FileReader( "OneRecord.fna" ));
BufferedWriter bw = new BufferedWriter(new FileWriter( "OneLineRecord.faa" ));
String line;
{
while ((line = br.readLine () ) != null)
line = line.replace ( '|' , '\t');
String replacedString = line.replaceAll ("(\\n)", "");
bw.write( line );
}
br.close();
bw.close();
}
catch( IOException e )
{
System.out.println( "error" );
}
}
}
# 1 楼答案
开始括号
{
放在了while
循环的错误位置如果在
while
循环条件之后没有大括号,则只有它之后的第一条语句充当循环体。当你到达这条线的时候整个文件已被读取,并且
line
为null
。改变到
# 2 楼答案
将大括号添加到
while
循环中,以便在发生replaceAll
时语句不会终止