У меня есть код, который печатает дополнительную новую строку, которая мне не нужна. Также, если я добавлю system.out.println(str), то эта строка будет напечатана дважды, чего я не понимаю.
Код
public void run() throws IOException
{
boolean zeroEntered = false;
int scenario = 1;
//while a zero hasn't been entered
while(!zeroEntered)
{
boolean stop = false;
String input;
int numTeams = rdr.nextInt();
Teams teams = new Teams(numTeams);
//if there are 0 teams, then stop
//and set zeroEntered to true
if(numTeams == 0)
{
stop = true;
zeroEntered = true;
}
else
{
//else write the scenario number
wtr.write("Scenario #" + scenario + "\n");
wtr.flush();
scenario++;
}
//for the number of teams entered index
for(int index = 0; index < numTeams; index++)
{
int numPlayers = rdr.nextInt();
//add the number pNum of players
for(int pNum = 0; pNum < numPlayers; pNum++)
{
//adds the player scanned
int player = rdr.nextInt();
teams.addPlayer(player, index);
}
}
AthleteQueue lunchLine = new AthleteQueue(teams);
//while there is still entry, and stop hasn't been entered
while(rdr.hasNextLine() && !stop)
{
input = rdr.next();
//if enter , then enqueue the next read player
if(input.equals("ENTER"))
{
lunchLine.enqueue(rdr.nextInt());
}
//else serve, enqueue and print
else if(input.equals("SERVE"))
{
wtr.write(lunchLine.dequeue() + "\n");
wtr.flush();
}
//stop if there is no entry
else
{
stop = true;
}
}
//two lines after? why?
wtr.write("\n");
}
wtr.flush();
System.out.println("WHY");
}
Этот метод находится в классе, который имеет переменную экземпляра Scanner rdr и Writer wtr. В данном случае были переданы bufferedReader и printWriter. Начальный код несколько неуместен. Я просто включил его на случай, если ошибка может быть там. В последних нескольких строках печатается дополнительная новая строка и дополнительная причина. Я считаю, что это из-за метода флеша. Может кто-нибудь объяснить, почему это происходит и как я могу это исправить. Я ценю помощь.
flush()
действительно печатается дважды, а это не так, его удаление решит проблему, а это не так. Имеет ли это? - person user207421   schedule 07.11.2014