从Java中的BufferReader读取字符的字段

时间:2014-05-18 19:11:22

标签: java stream char field

如何在java中的字符字段中读取一行字符?

private char[] w;
int i=0;

BufferedReader br = new BufferedReader(new FileReader("pathToFile..."));

char c = '-1';

while (c!='\n') {
    w[i++] = (char) br.read();
}
我得到了 显示java.lang.NullPointerException

3 个答案:

答案 0 :(得分:2)

试试这个

 private char[] w;

 BufferedReader br = new BufferedReader(new FileReader("pathToFile..."));

 String s = null;
 // to iterate for each line in file
 while ((s = br.readLine()) !=  null ) {
    // this will store chars of line
    w = s.toCharArray();
   //TODO - do something based on w array

 }

答案 1 :(得分:1)

您需要创建一个数组实例(在Java中,数组是一个对象 - 即使该数组是基本类型 - )

private char[] w = new char[numberBigEnough];

请注意,我宁愿使用更动态的方法,例如。使用StringBuilder实例。这样您就不必猜测行的长度来指定数组维度。

答案 2 :(得分:1)

我个人会在这里使用ArrayList。

private List<Character> list = new ArrayList<Character>();

int i=0;

BufferedReader br = new BufferedReader(new FileReader("pathToFile..."));

char c = '-1';

while (c!='\n') {
    list.add((char) br.read());
}

类似的东西。