【发布时间】:2020-03-01 14:26:48
【问题描述】:
所以,我正在编写一个程序,每次从文件中读取一个字符,对字符进行操作,然后将输出写入另一个文件。
由于某种原因,当我对文件路径进行硬编码(我这样做只是为了在调试时不必继续输入文件)以及从命令行传递文件时,我得到了不同的结果。
当我从命令行传递文件时,它有时会跳过输入行,所以如果我有一个包含 10 行的文件,我可能只会处理 8 行。
我感觉这与输入行末尾是否有空格有关,但我似乎无法弄清楚。任何帮助将非常感激。
另外,当我硬编码文件路径时,我使用的是 NetBeans,当我使用命令行参数时,我从终端运行程序。我在下面粘贴了 I/O 代码。
while( ( i = buffRead.read() ) != -1 )
{
try
{
char c = (char) i;
if ( Character.isWhitespace(c) )
{
if(converter.getStackSize() > 1)
{
converter.resetConverter();
throw new IncorrectNumOfOperandsException();
}
buffRead.readLine();
converter.resetConverter();
writeOut.println();
}
else
{
converter.register( c );
}
}
catch (InvalidCharException j)
{
writeOut.println("Invalid Character Entered\n");
buffRead.readLine();
}
catch (IncorrectNumOfOperatorsException k)
{
writeOut.println("Too Many Operators for Number of Operands\n");
buffRead.readLine();
}
catch ( IncorrectNumOfOperandsException m)
{
writeOut.println("Too Many Operands for Number of Operators\n");
buffRead.readLine();
}
}
buffRead.close();
writeOut.close();
【问题讨论】:
标签: java io bufferedreader