Например при вводных вот таких:
https://pastebin.com/AyB08CSd
мой код выводит вот это в консоль:
Подскажите пожалуйста, что я сделал не так.

package com.javarush.task.task19.task1918;
/*
Знакомство с тегами
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
BufferedReader rFile = new BufferedReader(new FileReader(r.readLine()));
r.close();
// BufferedReader rFile = new BufferedReader(new FileReader(args[1]));
String str = "";
String strFile = "";
while ((str = rFile.readLine()) != null) {
strFile += str;
}
rFile.close();
String[] splitStr = strFile.split("<");
ArrayList<String> list = new ArrayList<>();
ArrayList<Integer> listState = new ArrayList<>();
int tagSum = 0;
for (int i = 1; i < splitStr.length; i++) {
if (splitStr[i].length() >= args[0].length() && splitStr[i].substring(0, args[0].length()).equals(args[0])) {
for (int j = 0; j < list.size(); j++){
int tmpInt = listState.get(j);
if (tmpInt!=0) {
tmpInt++;
listState.set(j, tmpInt);
String tmp = list.get(j);
tmp += "<" + splitStr[i];
list.set(j, tmp);
}
}
list.add("<" + splitStr[i]);
listState.add(1);
tagSum++;
} else if (splitStr[i].length() > args[0].length() && splitStr[i].substring(0, args[0].length() + 1).equals("/" + args[0])) {
tagSum--;
for (int j = 0; j < list.size(); j++){
int tmpInt = listState.get(j);
if (tmpInt!=0) {
tmpInt--;
listState.set(j, tmpInt);
String tmp = list.get(j);
tmp += "<" + splitStr[i];
list.set(j, tmp);
}
}
if (tagSum == 0) {
for (int j = 0; j < list.size(); j++){
System.out.println(list.get(j));
}
list = new ArrayList<>();
listState = new ArrayList<>();
}
} else if (tagSum != 0) {
for (int j = 0; j < list.size(); j++){
int tmpInt = listState.get(j);
if (tmpInt!=0) {
String tmp = list.get(j);
tmp += "<" + splitStr[i];
list.set(j, tmp);
}
}
}
}
}
}