A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张超超 黑马帝   /  2012-4-19 10:16  /  1665 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package test;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;


public class Test6 {

public static void main(String[] args) throws IOException {

FileInputStream fis=new FileInputStream("f:\\3.txt");   

//文件字节流
InputStreamReader isr=new InputStreamReader(fis,"UTF-8");
String str=null;
  
//直接读取字符
int c=0;
while((c=isr.read())!=-1)
System.out.print((char)c);
  
BufferedReader br=new BufferedReader(isr);
str=br.readLine();
  
String arrays[] = str.split(" ");

for(int i=0;i<arrays.length;i++)
System.out.print(arrays[0]);
System.out.print(arrays[0]);
System.out.print(arrays[1]);
  
}



}
运行时出现这个问题怎么解决?
Exception in thread "main" java.lang.NullPointerException
at test.Test6.main(Test6.java:27)

2 个回复

正序浏览
问题出在 “BufferedReader br=new BufferedReader(isr);”这句,
isr是InputStreamReader 的对象,虽然br能构造成功,
但BufferReader本意是接收字符流,而InputStreamReader对象已将字符流转成了字节流
这样readLine是不会执行成功的,因为在字节流里找不到行格式信息,
估计会返回NULL所以str.split(" ");会有空指针异常。
回复 使用道具 举报
public class Test6 {

public static void main(String[] args) throws IOException {

FileReader fis=new FileReader("f:\\3.txt");   
BufferedReader br=new BufferedReader(fis);
//直接读取字符
String c=null;
while((c=br.readLine())!=null){
        System.out.println(c);
}
  
}

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马