黑马程序员技术交流社区
标题:
java程序在读取流时出现了个问题
[打印本页]
作者:
张超超
时间:
2012-4-19 10:16
标题:
java程序在读取流时出现了个问题
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)
作者:
liuyang
时间:
2012-4-19 10:41
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);
}
}
}
作者:
罗旭维
时间:
2012-4-19 11:00
问题出在 “BufferedReader br=new BufferedReader(isr);”这句,
isr是InputStreamReader 的对象,虽然br能构造成功,
但BufferReader本意是接收
字符流
,而InputStreamReader对象已将字符流转成了
字节流
,
这样readLine是不会执行成功的,因为在字节流里找不到行格式信息,
估计会返回NULL所以str.split(" ");会有空指针异常。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2