У меня есть серия узлов дерева, сохраненных в текстовом файле в предзаказе. Для создания дерева у меня есть класс TreeNode, который содержит полезную нагрузку узлов и TreeNode для левого и правого, если это не лист.
class TreeNode{
private String payload;
private TreeNode left;
private TreeNode right;
public TreeNode(String payload){
this.payload = payload;
this.left = null;
this.right = null;
}
public TreeNode(String payload, TreeNode left, TreeNode right){
this.payload = payload;
this.left = left;
this.right = right;
}
public void setLeft(TreeNode left){
this.left = left;
}
public void setRight(TreeNode right){
this.right = right;
}
}
Мне нужно иметь возможность взять строки из текста файл (которые являются «полезной нагрузкой» для каждого узла) и заново создайте дерево из них. Я считаю, что лучший способ сделать это - использовать рекурсивную функцию, подобную той, которая используется для обхода созданного дерева в предварительном порядке, однако я не могу понять, как это сделать. Код, который у меня есть для получения строк из текстового файла, сохраняет их в переменной после прочтения каждой строки. Я сделал это, потому что полагал, что это облегчит работу с данными, так как я не очень хорошо знаком с чтением текстовых файлов в java.
public TreeNode loadTree(){
File file = new File("suggestions.txt");
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
int len = 0;
while ((line = reader.readLine()) != null) {
len++;
}
int pos = 0;
String[] lines = new String[len];
while ((line = reader.readLine()) != null) {
lines[pos] = lines;
pos++;
}
} catch (IOException e){
e.printStackTrace();
}
}
Я относительно новичок в Java, поэтому я извиняюсь за любой глупый код.