我是这个极好的地方的新人。我从这个网站多次得到帮助。我已经看到了许多关于我之前讨论过的问题的答案,但我在使用FileReader计算字符数时面临问题。它正在使用Scanner。这就是我的尝试:
class CountCharacter
{
public static void main(String args[]) throws IOException
{
File f = new File("hello.txt");
int charCount=0;
String c;
//int lineCount=0;
if(!f.exists())
{
f.createNewFile();
}
BufferedReader br = new BufferedReader(new FileReader(f));
while ( (c=br.readLine()) != null) {
String s = br.readLine();
charCount = s.length()-1;
charCount++;
}
System.out.println("NO OF LINE IN THE FILE, NAMED " +f.getName()+ " IS " +charCount);
}
}`
答案 0 :(得分:0)
在我看来,每次进行循环时,都将charCount指定为循环迭代所涉及的行的长度。即代替
charCount = s.Length() -1;
尝试
charCount = charCount + s.Length();
编辑:
如果您说的文档内容为“onlyOneLine
”
然后,当您第一次点击while
检查时,br.readLine()
将BufferredReader
读取第一行,但在while
的代码块中br.readLine()
再次调用,将BufferredReader
推进到文档的第二行,该行将返回null
。由于null
已分配给s
,并且您调用length()
,则会抛出NPE。
尝试使用while块
while ( (c=br.readLine()) != null) {
charCount = charCount + c.Length(); }