Итак, я пытаюсь добавить текст в текстовый файл, мне это удалось, пользователю предлагается указать, что он хотел бы добавить, и он включается, когда я открываю текстовый файл после запуска моей программы.
Теперь вот моя проблема: в первый раз, когда я пытаюсь что-то добавить в текстовый файл, он создает пустую строку, и под ней будет информация, добавленная пользователем, причина этого в том, что когда Java открывает мой файл, Курсор ввода находится внизу последней строки, где нет пробела, и он готов к вводу информации, например:
Хорошо, круто, так что это означает, что всякий раз, когда я добавляю что-нибудь в txt-файл из моей программы на Java, это автоматически будет на новой строке, и мне не нужно будет добавлять пробелы println для ввода новой строки. Теперь здесь возникает другая проблема: после того, как Java помещает новый текст в txt-файл, он оставляет курсор ввода в КОНЦЕ добавленной новой строки, а не в новой строке под ней, где нет данных. Это означает, что если я попытаюсь дважды добавить новую информацию, она появится в той же строке, а не в новой. Поэтому, чтобы исправить это, я просто добавил
pw.println();
оператор в начале моего редактора печати, чтобы убедиться, что он помещает курсор на новую строку. Но теперь, когда я пытаюсь снова добавить данные в первый раз после добавления этой последней строки кода, между последней строкой данных и новой строкой данных, которую я добавил, будет создано пустое пространство. Вот так:
Теперь всякий раз, когда пользователь хочет выполнить поиск по базе данных, потому что у меня есть нулевые проверки в моих поисках , всякий раз, когда программа сталкивается с этой пустой строкой между моими исходными данными и новыми данными, которые были добавлены, она не будет продолжать поиск, поэтому любая информация, которую пользователь добавил в базу данных, становится бесполезной, и Java не сможет искать его из-за пустой строки, которая его разделяет.
По сути, либо я сохраняю pw.println(), и все мои данные появляются, но между исходными данными есть пробел, поэтому его нельзя найти, ИЛИ я могу удалить его, а затем все новые добавленные данные появляются на та же самая линия, которая не то, что я хочу.
Это код для добавления данных в txt файл:
public static void add() throws IOException
{
String filename="Elements.txt";
PrintWriter pw = new PrintWriter(new FileWriter(filename,true));
pw.println();
String element=JOptionPane.showInputDialog(null, "Enter name of element.", "Add an Element", JOptionPane.INFORMATION_MESSAGE);;
pw.write(element + ",");
String symbol=JOptionPane.showInputDialog(null, "Enter symbol of element.", "Add an Element", JOptionPane.INFORMATION_MESSAGE);;
pw.write(symbol + ",");
String atomicNumber=JOptionPane.showInputDialog(null, "Enter atomic number.", "Add an Element", JOptionPane.INFORMATION_MESSAGE);;
pw.write(atomicNumber + ",");
String atomicMass=JOptionPane.showInputDialog(null, "Enter atomic mass", "Add an Element", JOptionPane.INFORMATION_MESSAGE);;
pw.write(atomicMass + ",");
String valence=JOptionPane.showInputDialog(null, "Enter # of valence electrons.", "Add an Element", JOptionPane.INFORMATION_MESSAGE);;
pw.write(valence);
pw.close();
}
Есть ли способ манипулировать курсором в текстовом файле, чтобы убедиться, что все новые добавленные данные отображаются правильно, чтобы пользователь мог их искать впоследствии? Открытие текстового файла и размещение курсора там, где я хочу, не сработало.