Java小程序

来源:百度知道 编辑:UC知道 时间:2024/07/07 01:18:56
import java.io.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
public class error
{
public static void main(String[] args) throws
FileNotFoundException,IOException
{
FileReader inData = new FileReader("C:\\Documents and Settings\\fenlan\\桌面\\trec5\\trec5\\result\\result1.txt");
BufferedReader inFile = new BufferedReader(inData);
String[] s = new String[200000];
int i;
//每行文本存入数组
for(i=0; i<s.length; i++)
{
s[i] = inFile.readLine();
s[i]=s[i].replaceAll("CH"," ");
if(s[i]==null)
break;
System.out.println(s[i]);
}

FileWriter outData = new FileWriter("C:\\Documents and Settings\\fenlan\\桌面\\trec5\\trec5\\

读取文件到尾了就返回null了,s[i]=null不能使用replaceAll了,所以要判断是否读到了尾
for(i=0; i<s.length && (s[i] = inFile.readLine()) != null; i++)
{
s[i]=s[i].replaceAll("CH"," ");
if(s[i]==null)
break;
System.out.println(s[i]);
}

支持楼上的,不过楼上的逻辑貌似有点问题,
for(i=0; i<s.length && (s[i] = inFile.readLine()) != null; i++)
这里已经判断 s[i] != null 才进入循环,如果 s[i]==null根本不会进入循环,所以循环里面的if(s[i]==null) break; 语句没有用

NullpointerException意思是空指向异常:指向的是一个空的对象..

s[i]会产生一个空对象......

解决一下吧..

三楼说的不错