Java 扫描文件并替换字符
我创建了一个程序,可以扫描一个文本文件,切换某些字符,然后打印到另一个文件中。我创建了一个程序,将“|”更改为“\t”,将“\n”更改为“”。有一个运行时错误,表示“线程中的异常”main“java.lang.NullPointerException 在Nov5.main(Nov5.java:20)” 如果有人知道如何纠正这个错误并让我的程序运行,那就太好了。非常感谢Java 扫描文件并替换字符,java,file,Java,File,我创建了一个程序,可以扫描一个文本文件,切换某些字符,然后打印到另一个文件中。我创建了一个程序,将“|”更改为“\t”,将“\n”更改为“”。有一个运行时错误,表示“线程中的异常”main“java.lang.NullPointerException 在Nov5.main(Nov5.java:20)” 如果有人知道如何纠正这个错误并让我的程序运行,那就太好了。非常感谢 import java.io.BufferedReader; import java.io.FileReader; import
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" );
}
}
}
将大括号添加到
while
循环中,以便在发生replaceAll
时语句不会终止
while ((line = br.readLine()) != null) { // increase scope
line = line.replace('|', '\t');
String replacedString = line.replaceAll("(\\n)", "");
bw.write(line);
}
您的开头括号
{
放错了while
循环的位置
如果在while
循环条件后没有大括号,则只有它后面的第一条语句充当循环体
String replacedString = line.replaceAll ("(\\n)", "");
已读取整个文件,并且行
为null
。更改
{
while ((line = br.readLine () ) != null)
到
注意:您没有使用
replacedString
(可能是输入错误)。因此删除\n
的逻辑无效。
while ((line = br.readLine () ) != null) {