Итак, я пишу программу, в которой я читаю из файла по одному символу за раз, выполняю операцию с символом, а затем записываю вывод в другой файл.
По какой-то причине я получаю другой результат, когда жестко кодирую путь к файлу (я сделал это просто для того, чтобы мне не приходилось вводить файл во время отладки) и когда я передаю файлы из командной строки ,
Когда я передаю файл из командной строки, он иногда пропускает строки ввода, поэтому, если у меня есть файл с 10 строками, я могу обработать только 8 строк.
У меня такое ощущение, что это как-то связано с тем, есть ли пробелы в конце строк ввода, но я не могу понять это. Любая помощь приветствуется.
Кроме того, я использовал NetBeans, когда жестко закодировал путь к файлу, и запускал программу из терминала, когда использовал аргументы командной строки. Я вставил код ввода / вывода ниже.
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();